我有两个数据帧 df1
和 df2
具有相同的列。我想找到一列中共同的元素。
例如
df1:
Col1 Col2 Nam1 Nam2 Net
AD AS AS ADS AB
BF SA WQ AFW AF
RW KJ IQ QIE LK
df2:
Col1 Col2 Nam1 Nam2 Net
RW WQ HF HGJ AB
BF AS DD VCC LJ
RW KJ IQ ADS JH
DS QW LJ NB LK
我想要以下内容(在网络上)
Col1 Col2 Nam1 Nam2 Net
AD AS AS ADS AB
RW WQ HF HGJ AB
RW KJ IQ QIE LK
DS QW LJ NB LK
我尝试过如下:
df=pd.merge(df1, df2, on='Net', how='inner')
但它重复了所有列的名称(_x 和 _y),而且似乎不只提取共同的元素。
最佳答案
IIUC,您只想要那些共享相同净值的行吗?您可以从以下开始:
vals = set(df1['Net']).intersection(df2['Net'])
print (vals)
# {'AB', 'LK'}
现在,过滤掉这些值并连接:
pd.concat([
df1.query('Net in @vals'),
df2.query('Net in @vals')], ignore_index=True)
Col1 Col2 Nam1 Nam2 Net
0 AD AS AS ADS AB
1 RW KJ IQ QIE LK
2 RW WQ HF HGJ AB
3 DS QW LJ NB LK
关于python - 查找两个数据框中的共同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62745827/