在 Python 中,如果日期低于另一個資料幀的日期,我試圖洗掉資料幀的行。但比較不起作用。
這是我的兩個資料框以及我嘗試比較的結果。print(MeteoCH.head())將導致:
TempAvg TempMin TempMax Date 2021-11-15 00:00:00 4.4 4.3 4.5 2021-11-15 01:00:00 4.3 4.3 4.3 2021-11-15 02:00:00 4.1 4.1 4.2 2021-11-15 03:00:00 4.0 3.8 4.1 2021-11-15 04:00:00 3.6 3.4 3.8
而且print(PicoLog.head())會導致:
Temp1 Temp2 Temp3 Date 2021-11-15 18:34:18 01:00 21.268 21.671 21.190 2021-11-15 18:34:20 01:00 21.266 21.673 21.194 2021-11-15 18:34:22 01:00 21.270 21.680 21.194 2021-11-15 18:34:24 01:00 21.263 21.673 21.180 2021-11-15 18:34:26 01:00 21.262 21.672 21.185
如果我嘗試執行以下命令:
MeteoCH.drop(MeteoCH[MeteoCH.index < PicoLog.index.min()], inplace=True)
結果出現以下錯誤:
TypeError: dtype=datetime64[ns] 和 Timestamp 之間的比較無效
為什么?如何解決?
我試圖以某種方式“轉換”它,但它不起作用。
有人能幫助我嗎 ?
uj5u.com熱心網友回復:
更簡單的是過濾器大于或等于,倒過來<像:
MeteoCH[MeteoCH.index >= PicoLog.index.min()]
MeteoCH[~(MeteoCH.index < PicoLog.index.min())]
您的解決方案是可能的更改過濾MeteoCH.index,但在我看來過于復雜:
MeteoCH.drop(MeteoCH.index[MeteoCH.index < PicoLog.index.min()], inplace=True)
編輯:
原來的問題是時區偏移,解決方案是DatetimeIndex.tz_localize:
PicoLog.index = PicoLog.index.tz_localize(None)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370536.html
上一篇:PHP-包含字串的日期格式
