如何使一个数据框保持与另一个相同的行?

时间:2016-08-13 08:44:33

标签: python pandas dataframe

我有一个数据框(df)x,

   A   B 
O  2   3
1  4   4
3  2   1

您可能会注意到缺少第2行。那是因为我使用了x.dropna(),因此删除了第2行,因为它是NAN。

现在我有另一个df y:

   C   D 
O  1   2
1  4   3
2  3   5
3  1   4

我希望y保持与x相同的行。也就是说,我希望删除y中的2号。

我使用了以下代码:

temp=x.join(y)
x=temp.ix[:,0:2]
y=temp.ix[:,2:4]

这样可行。但我想可能有更直接的方法来做到这一点?

非常感谢。

2 个答案:

答案 0 :(得分:1)

使用loc:

y.loc[x.index]
Out: 
   C  D
O  1  2
1  4  3
3  1  4

您可以将其分配回y:y = y.loc[x.index]

答案 1 :(得分:1)

您还可以使用index.isin检查是否在y的索引值中找到x的每个索引值。

In [3]: y = y[y.index.isin(x.index)]

In [4]: y
Out[4]: 
       C  D
    O  1  2
    1  4  3
    3  1  4