如果列中的项目已存在,则将项目添加到数据框

时间:2018-02-12 21:06:14

标签: pandas

除了粗暴强制循环外,给定dataframe df

   A       B    C  
0  True    1    23.0
1  False   2    25.0
2  ...     ...  ....

list dicts lod

[{'A': True, 'B':2, 'C':23}, {'A': True, 'B':1, 'C':24}...]

我想添加 lod {A: True, B:2, C:23}的第一个元素,因为23.0已经在 df C列中,但不是第二个元素{{ 1}}因为24不是 df {A: True, B:1, C:24}列中的值。

然后将C的所有项添加到list of dicts已加入数据框的dataframe值,否则继续使用下一个元素。

1 个答案:

答案 0 :(得分:2)

您可以将dict列表转换为数据框,然后使用isin

add=pd.DataFrame([{'A': True, 'B':2, 'C':23}, {'A': True, 'B':1, 'C':24}])

s=pd.concat([df,add[add.C.isin(df.C)]])
s
Out[464]: 
       A  B     C
0   True  1  23.0
1  False  2  25.0
0   True  2  23.0