gpt4 book ai didi

python - 如何检查一个数据框列在其他四个数据框的列中是否可用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:57 25 4
gpt4 key购买 nike

我有一个如下所示的基础数据框-

df1_data = {'id' :{0:'101',1:'102',2:'103',3:'104',4:'105'},
'sym1' :{0:'abc',1:'pqr',2:'xyz',3:'mno',4:'lmn'}}
df1 = pd.DataFrame(df1_data)
print df1

id sym1
0 101 abc
1 102 pqr
2 103 xyz
3 104 mno
4 105 lmn

从这个数据框中,我想检查列 sym1 在其他四个数据框中是否可用?

四个不同的数据框:

df2_data = {'sym2' :{0:'abc',1:'xxx',2:'xyz',3:'mno'},
'name' :{0:'a',1:'b',2:'c',3:'d'}}
df2 = pd.DataFrame(df2_data)
print df2

df3_data = {'sym2' :{0:'abc',1:'xxx',2:'xyz',3:'mno'},
'name' :{0:'h',1:'i',2:'k',3:'l'}}
df3 = pd.DataFrame(df2_data)
print df3

df4_data = {'sym2' :{0:'abc',1:'xxx',2:'xyz',3:'mno'},
'name' :{0:'p',1:'q',2:'r',3:'s'}}
df4 = pd.DataFrame(df4_data)
print df4

df5_data = {'sym2' :{0:'abc',1:'xxx',2:'xyz',3:'mno'},
'name' :{0:'w',1:'x',2:'y',3:'z'}}
df5 = pd.DataFrame(df5_data)
print df5

在数据帧 df2、df3、df4、df5 中可用的列 sym2 中可能包含相同的符号,也可能不包含相同的符号。我的意图是检查 sym1 列值在 df2、df3、df4、df5 数据帧 sym2 列值中是否可用?

预期输出-

    id sym1
0 102 pqr
1 105 lmn

结论-

符号 pqrlmn 在数据帧 df2、df3、df4 和 df5 的 sym2 列中不可用。

最佳答案

  • 使用isin 检查df1.sym1 的每个元素是否在其他可迭代对象中
  • 使用pd.concat将所有其他数据帧串在一起

df1[~df1.sym1.isin(pd.concat([df2, df3, df4, df5]).sym2)]

id sym1
1 102 pqr
4 105 lmn

numpy 变体快 3 倍

df1[~df1.sym1.isin(np.concatenate([d.sym2.values for d in [df2, df3, df4, df5]]))]

关于python - 如何检查一个数据框列在其他四个数据框的列中是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41930333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com