python - 在 pandas 中查找匹配条件的第 N 行
问题描述
假设我有以下数据框:
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
解决方案
您可以获得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')
推荐阅读
- node.js - 有没有办法在 Mongoose 中创建更新后触发器或事件?
- laravel - 将 Laravel 日志从 Supervisor 发送到 cloudwatch
- angular - 用于选择/取消选择的标志
- javascript - 测试 React:“不要等待使用同步逻辑调用 act(...) 的结果”
- string - 在 Flex/Bison 中实现字符串插值
- linux - 如何在不使用 json 工具和 JQ 工具的情况下在 shell 脚本中读取和解析 JSON
- ada - 为什么前缀调用不适用于访问类型?
- robotframework - 如何在 Robot 框架中使用 Wingethandle
- javascript - 在 jimp 中调整大小后图像颜色发生了变化
- python - Django 在导入自定义 python 文件时查看错误