我有以下資料框:
Date Site
0 1999-10-01 12:00:00 65
1 1999-10-01 16:00:00 21
2 1999-10-02 11:00:00 57
3 1999-10-05 12:00:00 53
4 1999-10-10 16:00:00 43
5 1999-10-24 07:00:00 33
6 1999-10-24 08:00:00 21
我有一個從tolist()另一個資料框中獲取的日期時間串列。
[Timestamp('1999-10-01 00:00:00'),
Timestamp('1999-10-02 00:00:00'),
Timestamp('1999-10-24 00:00:00')]
該tolist()目的是篩選基于該串列內的日期資料幀。最終結果是:
Date Site
0 1999-10-01 12:00:00 65
1 1999-10-01 16:00:00 21
2 1999-10-02 11:00:00 57
5 1999-10-24 07:00:00 33
6 1999-10-24 08:00:00 21
只有 1st、2nd 和 24th Oct 行將出現在資料框中。
這樣做的方法是什么?我查了一下,只看到了在日期或單個日期之間進行過濾的解決方案。
謝謝你。
uj5u.com熱心網友回復:
如果要比較Timestamp而不需要時間使用Series.dt.normalize:
df1 = df[df['Date'].dt.normalize().isin(L)]
或Series.dt.floor :
df1 = df[df['Date'].dt.floor('d').isin(L)]
對于按日期進行比較,也必須轉換list為dates:
df1 = df[df['Date'].dt.date.isin([x.date for x in L])]
print (df1)
Date Site
0 1999-10-01 12:00:00 65
1 1999-10-01 16:00:00 21
2 1999-10-02 11:00:00 57
5 1999-10-24 07:00:00 33
6 1999-10-24 08:00:00 21
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/389661.html
