比较两个不相等大小的数据框之间的熊猫列以进行条件检查

问题描述 投票:0回答:2

我有两只熊猫DF。大小不等。例如:

Df1
id     value
a      2
b      3
c      22
d      5 

Df2 
id     value
c      22
a      2

否,我想从DF1中提取与具有相同ID的。现在,我的第一种方法是运行2 for循环,例如:

x=[]
for i in range(len(DF2)):
    for j in range(len(DF1)):
        if DF2['id'][i] == DF1['id'][j]:
          x.append(DF1.iloc[j])    

现在可以,但是对于2个文件,一个文件包含40万行,另一个文件包含5,000,我需要一种高效的Pythonic + Pnadas方式

python pandas loops compare data-files
2个回答
0
投票

您可以合并数据帧,然后检查所有元素是否为duplicated,然后检查duplicated并仅保留第一次出现:

drop_duplicates

drop_duplicates

0
投票

您可以尝试以下方法:

m = pd.concat((df1,df2))
m[m.duplicated('id',keep=False)].drop_duplicates()
© www.soinside.com 2019 - 2024. All rights reserved.