python - 查找两个数据框中的共同元素

标签 python pandas

我有两个数据帧 df1df2 具有相同的列。我想找到一列中共同的元素。 例如

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/

相关文章:

python - 在 pandas dataframe 中环绕索引进行切片的好方法

Python数据框: Calculating Confidence or Prediction Intervals Using Groupby on One Column

python - 在 Python 中将带有选定列标题的 CSV 读取到一个 CSV 文件中(按行读取)

python - Sage 笔记本服务器发布/获取

python - PyLucene : ImportError: cannot import name SimpleFSDirectory

python - 使用 Matplotlib 和 iPython,如何将 x 和 y 轴限制重置为自动缩放?

python - 即使存在 CSV 文件也找不到(FileNotFound [Errno 2])

python - Pandas :按多列分组后创建单一大小和求和列

python - 防止 Pandas 在垂直和水平方向上连接我的数据框

python - 如何使用matplotlib PATH绘制多边形