gpt4 book ai didi

python - 修改数据框单元格中的字典

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:16 25 4
gpt4 key购买 nike

我有一个 pandas 数据框。每个单元格中都有一个字典:

id | A                | B              | ...
1 | {"a": 1, "b":1} |{"d": 1, "e":1} | ...
2 | {"a": 2, "b":3} |{"d": 5, "e":6} | ...
...
10 | {"a": 1, "b":1} |{"d": 1, "e":3} | ...

我想更新一个单元格(例如 1,A ):

df.loc[1,"A"].update({"c":2})

此过程更新具有相同字典的每个单元格,因此在本例中将会有(1,A 和 10,A 将被更改):

id | A                       
1 | {"a": 1, "b":1, "c":2}
2 | {"a": 2, "b":3}
...
10 | {"a": 1, "b":1, "c":2}

如何强制 python更新 1,A?

这就是我创建数据框的方式:

df = pd.read_csv( file_path, sep='\t', names=['id', 'A'], compression='gzip', converters={1:ast.literal_eval})

最佳答案

正如评论中所指出的,[1, "A"][10, "A"] 中的两个词典是相同的,因此您无法更新其中一个无需更新其他。

虽然我不明白为什么会发生这种情况,但在每个单元格中深度复制字典可以解决问题:

import copy
df = df.applymap(lambda d: copy.deepcopy(d))

关于python - 修改数据框单元格中的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52405726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com