Pandas 如果列中的项已存在,则向数据框添加项
除了使用循环强制执行之外,给定Pandas 如果列中的项已存在,则向数据框添加项,pandas,Pandas,除了使用循环强制执行之外,给定数据帧df: A B C 0 True 1 23.0 1 False 2 25.0 2 ... ... .... [{'A': True, 'B':2, 'C':23}, {'A': True, 'B':1, 'C':24}...] 以及目录的列表lod: A B C 0 True 1 23.0 1 False 2 25.0 2 ...
数据帧df:
A B C
0 True 1 23.0
1 False 2 25.0
2 ... ... ....
[{'A': True, 'B':2, 'C':23}, {'A': True, 'B':1, 'C':24}...]
以及目录的列表
lod:
A B C
0 True 1 23.0
1 False 2 25.0
2 ... ... ....
[{'A': True, 'B':2, 'C':23}, {'A': True, 'B':1, 'C':24}...]
我想添加lod{A:True,B:2,C:23}
的第一个元素,因为23.0已经在dfC列中,而不是第二个元素{A:True,B:1,C:24}
,因为24不是df的C
列中的值
因此,将dict的列表的所有项目添加到数据框中已经存在的列的数据框中,否则继续下一个元素。您可以将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