我有一个字典,其中键是一个名称,值是另一个字典。例如:
dict1 = {name1: {...}, name2: {...},...}
我还有一个带有列“a”和“B”的熊猫数据帧df
。
我想将这些列值作为dict1
中的键添加到数据帧中。
例如,对于每一行,“A”中的值将用作dict1
中的键,“B”中的值将用作内部字典的键,结果将放在C列中
我正在尝试像df[C] = dict1[df[A]][df[C]]
或df[C] = df[[A,B]].apply(lambda x,y: dict1[x][y])
这样的事情,但似乎没有任何效果。理想情况下,我希望这样做时不会在没有类似df.itertuples()
的情况下循环行
示例df行(A、B):
'key1' | 'key2'
我想要以下(A,B,C):
'key1' | 'key2' | dict1['key1']['key2']
您可以使用
pd.concat
创建包含所有词典的数据帧,然后使用rename_axis
、reindex
和reset_index
创建数据帧,如:很接近-只需修改
apply
的代码即可。试试df['C'] = df.apply(lambda row: dict1[row.A][row.B], axis=1)
相关问题 更多 >
编程相关推荐