我已经从一个主数据框创建了两个数据框,例如df1和df2。
每个数据框具有相同的列数,但df2中的行数将少于df1中的行数。数据框将具有一列waferlot,x,y,w。
如何在df1中从df2搜索晶圆,x,y,w。
答案 0 :(得分:0)
虽然有多种方法可以实现此目的,但注释中已经提到了其中一种,但是我通常使用isin来做到这一点:
给出两个数据框:
import pandas as pd
df1 = pd.DataFrame()
df1['C1'] = ['a', 'b', 'c', 'd', 'e', 'f']
df1['C2'] = ['b', 'c', 'x', 'w', 'h', 'j']
df2 = pd.DataFrame()
df2 ['C1'] = ['x', 'a', 'c', 'f']
df2 ['C2'] = ['w', 'h', 'd', 'j']
数据帧如下:
In [144]: df1
Out[144]:
C1 C2
0 a b
1 b c
2 c x
3 d w
4 e h
5 f j
In [145]: df2
Out[145]:
C1 C2
0 x w
1 a h
2 c d
3 f j
现在,我可以使用isin在数据框的所有列中搜索所需的内容。
x = (df1[df1.C1.isin(df2.C1) & df1.C2.isin(df2.C2)])
输出:
C1 C2
5 f j
如果您只想搜索一列,则可以删除&
之前或之后的条件之一:
x = (df1[df1.C1.isin(df2.C1)])
输出:
C1 C2
0 a b
2 c x
5 f j