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