在熊猫中找到符合条件的第N行

时间:2019-02-02 03:24:34

标签: python pandas dataframe pattern-matching

假设我具有以下数据框:

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

1 个答案:

答案 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')