gpt4 book ai didi

python - 根据其他列和字典创建一个新列

转载 作者:行者123 更新时间:2023-11-28 22:29:53 25 4
gpt4 key购买 nike

假设我有一个至少包含两列 col1 和 col2 的数据框。我还有一本字典,其键由 col1 中的值组成。 col2.

import pandas as pd
dict_of_dicts = {'x0': {'y0':1, 'y1':2, 'y2':3}, 'x1': {'y0':0, 'y1':0, 'y2':1}, 'x2': {'y0':2, 'y1':1, 'y2':3}}
df = pd.DataFrame( {'col1': ['x1', 'x2', 'x2'], 'col2': ['y0', 'y1', 'y0']} )
print(df)
col1 col2
0 x1 y0
1 x2 y1
2 x2 y0

现在我想创建第三列,其中包含我的字典的值,其中的键由相应行中的 col1 和 col2 给出。有点像

df['col3'] = dict_of_dicts[df['col1']][df['col2']].

结果应该是这样的:

  col1 col2  col3
0 x1 y0 0
1 x2 y1 1
2 x2 y0 2

它应该类似于“ map ”,如此处解释Adding a new pandas column with mapped value from a dictionary

但我依赖两列。有人可以帮我吗?

顺便说一下:我实际上不必使用字典中的字典(如刚才所述)。我还可以使用一个表(数据框),其中一组键作为数据框的索引集,另一组键作为列名。但在这里我也不知道如何访问由 col1 和 col2 中的值指定的特定“单元格”。

我希望我的问题很清楚。

谢谢你,娜佳

最佳答案

我觉得简单pandas.DataFrame.apply使用匿名函数应该可以正常工作:

df.apply(lambda x: dict_of_dicts[x.col1][x.col2], axis=1)

关于python - 根据其他列和字典创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42766885/

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