Pandas: 获取删除行的索引

Pandas: get index of removed row

我有一个大数据框。这是一个小例子。

    C1  C2  C3  C4
0   foo one 1   4
1   foo one 1   5
2   foo two 2   3
3   bar one 3   6
4   bar two 2   7

我执行了一个删除多行的过滤器列表。这是最后的 df

    C1  C2  C3  C4
0   foo one 1   4
2   foo two 2   3
3   bar one 3   6

我想要的是删除行的索引,所以我可以输出所有被拒绝的值。

您可以对两个 Index 对象使用 difference 方法:

>>> df_orig.index.difference(df_final.index)
Int64Index([1, 4], dtype='int64')

如果您使用的 pandas 版本没有这个,您可以使用 np.setdiff1d 代替:

>>> np.setdiff1d(df_orig.index, df_final.index)
array([1, 4], dtype=int64)

方法略有不同,但与 DSM 的想法相同。

df.index[-df.index.isin(df1.index)]