为每个熊猫细胞设置相同的字典

时间:2019-06-18 20:44:12

标签: python python-3.x pandas

我有一个简单的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'}

仅当字典长度等于行长度时,实际输出才会保留键,否则只会出错。

3 个答案:

答案 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'}