python - 如何使用 Pandas 从一个数据框中的另一个数据框中查找值?

标签 python pandas indexing merge conditional-statements

I have two dataframes:

    df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B7', 'B4', 'B0', 'B3'] })
    df2 = pd.DataFrame({'A': ['A4', 'A3', 'A7', 'A8'],'B': ['B0', 'B1', 'B2', 'B3']})

我需要从 B 列中获取所有公共(public)值,所以这里是 B0B3

使用 df1.B.isin(df2.B) 给我 False False True True,但不是值列表。

最佳答案

你需要boolean indexing :

print (df1[df1.B.isin(df2.B)])

    A   B
2  A2  B0
3  A3  B3

print (df1.ix[df1.B.isin(df2.B), 'B'])
2    B0
3    B3
Name: B, dtype: object

print (df1.ix[df1.B.isin(df2.B), 'B'].tolist())
['B0', 'B3']

另一种解决方案 merge :

print (pd.merge(df1,df2, on='B'))
  A_x   B A_y
0  A2  B0  A4
1  A3  B3  A8

print (pd.merge(df1,df2, on='B')['B'])
0    B0
1    B3
Name: B, dtype: object

关于python - 如何使用 Pandas 从一个数据框中的另一个数据框中查找值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39464636/

相关文章:

python - 从数据框中删除 bool 行

python - 如何使用 Grouper 进行分组,但我想使用最近的日期作为频率的引用

matlab - 使用一组开始和结束索引索引数组

indexing - 如何判断文件夹中是否存在 Lucene.Net 索引?

python - 在python中从脂肪图像中提取文件

Python - 如何将 selenium 与代理一起使用

python - 如何使用 Python 和 web3.py 调用智能合约函数

python - 如何提取日期条件下的行

indexing - Elasticsearch批量索引变慢

python - Keras - model.summary 不显示摘要。相反,它显示类似 '<... object at 0x12ff2dad0>>' 的内容