如何使用熊猫从另一个数据框中的一个数据框中查找值?

Posted

技术标签:

【中文标题】如何使用熊猫从另一个数据框中的一个数据框中查找值?【英文标题】:How to find values from one dataframe in another using pandas? 【发布时间】:2017-01-20 17:40:51 【问题描述】:
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 列中获取所有公共值,所以这里将是B0B3

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

【问题讨论】:

【参考方案1】:

你需要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-大熊猫

熊猫数据框在不同的数据框中查找一个值并分配一个值

如何更改熊猫数据框中的单个索引值?

确定熊猫数据框中的列值何时更改

如何将逗号添加到数据框中的现有值中?熊猫

在熊猫数据框中查找上一个组的名称