【发布时间】:2017-08-03 15:52:01
【问题描述】:
假设我有一个至少包含两列 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
它应该类似于“地图”,如Adding a new pandas column with mapped value from a dictionary此处解释的那样
但我依赖于两列。请问有人可以帮我吗?
顺便说一句:我实际上不必使用字典字典(如前所述)。我还可以使用一个表(数据框),其中一组键作为数据框的索引集,另一组键作为列名。但在这里我也不知道如何访问由 col1 和 col2 中的值指定的特定“单元格”。
我希望我的问题很清楚。
谢谢你,娜佳
【问题讨论】:
-
您的预期输出与您正在寻找的检查建议不匹配。 0 正确吗?
-
你是对的,我刚刚纠正了一个错误。谢谢。
-
大家好,我有一个后续问题:假设我没有字典,而是数据框。而不是拥有dicts dict的键,而是拥有数据框的索引和列名。那它会如何运作?非常感谢!
-
如果您有一个不同的后续问题,请使用您的新输入、所需输出、您尝试了什么以及为什么它不起作用打开一个新问题。 StackOverflow 以问答格式工作,而不是线程。
标签: python pandas dictionary dataframe