我有两个数据框:

df1: contains all information
rowname a  b  c  d
R1      1  2  0  1
R2      2  2  0  1
R3      0  2  0  0
R4      1  2  0  1

df2: contains a subset of the rows and columns:
rowname a  b  c
R1      1  2  0
R2      2  2  0
R4      1  2  0


我想过滤掉不在df2中的所有行df1。因此,对于这种情况,我希望在保留所有列的同时摆脱df1中的R3。

我认为使用df1.merge(df2, ...)可以成功实现这一目标,但是我尝试了各种参数,但均未成功。我正在使用python3。

最佳答案

使用isin()简单过滤数据框

df1[df1.rowname.isin(df2.rowname)]

  rowname  a  b  c  d
0      R1  1  2  0  1
1      R2  2  2  0  1
3      R4  1  2  0  1

关于python - python中的Pandas DataFrame:基于df2中的行从df1中删除行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49077885/

10-13 07:32