根据另一个数据帧的条件定位一个数据帧中的行

2024-09-29 23:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经从主数据帧创建了两个数据帧,例如df1和df2

每个数据帧的列数相同,但df2中的行数不会少于df1中的行数。数据帧将包含waferlot、x、y、w列

如何从df1中的df2搜索waferlot,x,y,w


Tags: 数据df1df2列数waferlot
1条回答
网友
1楼 · 发布于 2024-09-29 23:24:56

虽然可以有多种方法来实现这一点,其中一种已经在评论中提到,但我通常使用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

相关问题 更多 >

    热门问题