假设我具有以下数据框:
df = pd.DataFrame(np.array(my_list).reshape(3,3), columns = list("abc"))
print (df)
a b c
0 1 2 3
1 4 5 6
2 4 8 9
3 0 1 0
如何仅删除符合条件的行的第n个实例(例如df['a'] == 4
的第二个实例)?
在这种情况下,结果应为:
a b c
0 1 2 3
1 4 5 6
3 0 1 0
答案 0 :(得分:4)
您可以获得表达式True
的第n个(df['a'] == 4)
值的索引。
nth = 2
df.drop(df.index[(df['a'] == 4)][nth-1])
a b c
0 1 2 3
1 4 5 6
3 0 1 0
在哪里
df['a'] == 4
0 False
1 True
2 True
3 False
Name: a, dtype: bool
然后
df.index[(df['a'] == 4)]
# Int64Index([1, 2], dtype='int64')