我有一个简单的Python字典。我想在Pandas Dataframe中添加一个新列,该列中的每一行都等于字典。
import pandas as pd
df = pd.DataFrame(data=[[1,2,3],[4,5,6]],columns=['A','B','C'])
df['D'] = {'AA': 'BB', 'CC': 'DD'}
所需的输出
A B C D
0 1 2 3 {'AA': 'BB', 'CC': 'DD'}
1 4 5 6 {'AA': 'BB', 'CC': 'DD'}
仅当字典长度等于行长度时,实际输出才会保留键,否则只会出错。
答案 0 :(得分:3)
一种选择是构造一个列长的列表,然后将其分配给列
df['D'] = [{'AA': 'BB', 'CC': 'DD'} for _ in range(df.shape[0])]
答案 1 :(得分:0)
使用套用:
df['D'] = df['D'].apply(lambda x: {'AA': 'BB', 'CC': 'DD'})
结果:
0 1 2 3 {u'AA': u'BB', u'CC': u'DD'}
1 4 5 6 {u'AA': u'BB', u'CC': u'DD'}
答案 2 :(得分:0)
您可以使用iterrows()函数遍历每行:
df['D'] = [{'AA': 'BB', 'CC': 'DD'} for i in df.iterrows()]
输出:
A B C D
0 1 2 3 {'AA': 'BB', 'CC': 'DD'}
1 4 5 6 {'AA': 'BB', 'CC': 'DD'}