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)]
我有一个大数据框。这是一个小例子。
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)]