python-3.x - 在数据框中仅保留第一次出现的连续重复值
问题描述
我有一个像这样的数据框:
time value
t1 50
t2 200
t3 200
t4 130
t5 78
t6 200
t7 19
t8 200
t9 200
t10 200
t11 59
结果,我想保留 value = 200 的行。如果它连续多次出现,则只保留第一次出现的 value 200。
所以所需的输出数据帧应该是:
time value
t2 200
t6 200
t8 200
请帮我解决这个问题。
谢谢
解决方案
可以这样解决:
df.loc[(df['value'] == 200) & (df['value'].shift(1) != 200)].reset_index(drop=True)
从数据框中,我们取所有等于 200 且不超过 200 的值。如果要查看从 0 开始的索引值,还可以在末尾添加“reset_index”。
输出:
time value
0 t2 200
1 t6 200
2 t8 200
推荐阅读
- ms-access-2016 - 根据多个组合框过滤查询,但如果组合框为空,则显示所有记录,包括空,
- jenkins - 如何在 Jenkins 中通过电子邮件发送测试报告
- python - 使用 API 获取 GCC 包含和定义
- javascript - 将附加信息传递给由 `redux-actions` 处理的错误
- knex.js - 从 Knex.js 获取连接池统计信息
- java - java.io.IOException:连接上的流意外结束?
- javascript - AWS CDK 用户池授权者
- azure-ad-b2c - 使用用户名登录的 Azure AD B2C 自定义策略
- ruby-on-rails - ActiveModel 序列化器:将属性作为方法访问
- node.js - 使用nodejs读取windows事件日志