我有两个具有相同索引类型(用户ID)的DataFrame,但它们都不是另一个的子集。我想从较小的所有行中删除那些不在较大的行中。我的印象是这是loc函数的预期用途,但实际上添加了行。
Largedf.shape
Out[2]: (7341253, 39)
Smalldf.shape
Out[3]: (588939, 2)
Smalldf = Smalldf.loc[Largedf.index]
Smalldf.shape
Out[5]: (7341253, 2)
Largedf.shape
Out[6]: (7341253, 39)
Smalldf中有几个用户不在Largedf中,因此我曾期望它会变小。有更好的方法吗?请注意,行无论如何都不会排序,我唯一需要跟踪的就是索引。
最佳答案
isin
怎么样?
Smalldf = Smalldf[Smalldf.index.isin(Largedf.index))]