小编PhE*_*PhE的帖子

在pandas DataFrame中添加一行

我知道pandas旨在加载完全填充DataFrame但我需要创建一个空的DataFrame,然后逐个添加行.做这个的最好方式是什么 ?

我成功创建了一个空的DataFrame:

res = DataFrame(columns=('lib', 'qty1', 'qty2'))
Run Code Online (Sandbox Code Playgroud)

然后我可以添加一个新行并填充一个字段:

res = res.set_value(len(res), 'qty1', 10.0)
Run Code Online (Sandbox Code Playgroud)

它工作但似乎很奇怪: - /(它添加字符串值失败)

如何向我的DataFrame添加新行(具有不同的列类型)?

python append dataframe pandas

731
推荐指数
18
解决办法
108万
查看次数

奇怪的 graphviz 边缘重叠

我得到一个奇怪的 graphviz 布局,边缘重叠。

节点“5”似乎放置在错误的位置:

默认混乱版本

如果我在节点“5”和节点“h”之间强制使用边缘的正确位置,则一切都放置得很好:

固定版本

为什么默认布局这么乱?

这是我的点源(只需取消注释该行即可获取固定版本):

digraph dummy {

    subgraph line1 { rank = same
        "1", "a", "b", "c", "d", "e", "f", "17"
    }

    subgraph line2 { rank = same
        "9", "g", "11"
    }

    subgraph line3 { rank = same
        "3", "h", "i", "14"
    }

    "c" -> "d"
    "a" -> "b"
    "b" -> "c"
    "e" -> "f"
    "i" -> "14"
    "14" -> "f"
    "a" -> "3"
    "3" -> "h"
    "d" -> "9"
    "9" -> "g"
    "h" -> "i"
    "g" …
Run Code Online (Sandbox Code Playgroud)

graphviz

5
推荐指数
1
解决办法
753
查看次数

使用 lru_cache 和 __hash__ 缓存对象实例

我不明白如何functools.lru_cache处理对象实例。我假设该类必须提供一种__hash__方法。因此任何具有相同哈希值的实例都应该hit缓存。

这是我的测试:

from functools import lru_cache

class Query:    
    def __init__(self, id: str):
        self.id = id

    def __hash__(self):
        return hash(self.id)

@lru_cache()
def fetch_item(item):
    return 'data'

o1 = Query(33)
o2 = Query(33)
o3 = 33

assert hash(o1) == hash(o2) == hash(o3)

fetch_item(o1)  # <-- expecting miss
fetch_item(o1)  # <-- expecting hit
fetch_item(o2)  # <-- expecting hit BUT get a miss !
fetch_item(o3)  # <-- expecting hit BUT get a miss !
fetch_item(o3)  # <-- expecting hit …
Run Code Online (Sandbox Code Playgroud)

python caching functools

1
推荐指数
1
解决办法
4353
查看次数

标签 统计

python ×2

append ×1

caching ×1

dataframe ×1

functools ×1

graphviz ×1

pandas ×1