[英]Filter similar rows based on timestamp as index in a dataframe
我有一个 dataframe 以时间戳为索引。 我想过滤掉具有相似时间戳的行并打印出来。 例如,
Value_1 Value_2
timestamp
2022-03-22 17:31:02 23 30
2022-03-22 17:31:02 25 40
2022-03-22 17:31:04 24 0.2
2022-03-22 17:31:05 21 90
2022-03-22 17:31:05 20 0.1
我想过滤掉具有类似时间戳的行,如下所示。
Value_1 Value_2
timestamp
2022-03-22 17:31:02 23 30
2022-03-22 17:31:02 25 40
2022-03-22 17:31:05 21 90
2022-03-22 17:31:05 20 0.1
我尝试使用melt
和groupby
。 它没有给我想要的结果。 有人可以帮我吗?
谢谢。
我们可以使用带有参数keep=False
的index.duplicated
(意思是如果存在重复值,则将所有出现的重复值标记为True
)
df[df.index.duplicated(keep=False)]
Value_1 Value_2
timestamp
2022-03-22 17:31:02 23 30.0
2022-03-22 17:31:02 25 40.0
2022-03-22 17:31:05 21 90.0
2022-03-22 17:31:05 20 0.1
您还可以使用groupby
+ filter
:
filtered_df = df.groupby(level=0).filter(lambda x: len(x) > 1)
Output:
>>> filtered_df
Value_1 Value_2
timestamp
2022-03-22 17:31:02 23 30.0
2022-03-22 17:31:02 25 40.0
2022-03-22 17:31:05 21 90.0
2022-03-22 17:31:05 20 0.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.