繁体   English   中英

dataframe 中以时间戳为索引过滤相似行

[英]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

我尝试使用meltgroupby 它没有给我想要的结果。 有人可以帮我吗?

谢谢。

我们可以使用带有参数keep=Falseindex.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM