我只想根據 ID 保留 <sowing_date> 和 <harvest_date> 之間的列中的行,因為每個 id 都有不同的播種日期和收獲日期
ID 時間 NDVI 播種日期 收獲
日期 106 2020-03-01 0.307967 2020-04-21 2020-11-01
106 2020-03-02 0.299089 2020-04-21 2020-11-01
106 2020-03-03 0.204-020 21 2020-11-01
我嘗試通過 groupby 但它不能正常作業,我認為只有通過函式或 for 回圈才能作業。請問有什么想法嗎?
預期結果應如下所示
ID 時間 NDVI 播種日期 收獲
日期 106 2020-04-21 0.307967 2020-04-21 2020-11-01
106 2020-04-22 0.299089 2020-04-21 2020-11-01 ...
106 2020-11-01 0.2902 -04-21 2020-11-01
uj5u.com熱心網友回復:
這基本上只是一個過濾器。過濾資料框的一種常見方法是為每一行創建一個 True/False 串列,然后對其進行過濾。這看起來像:
filter = [(df.time <= df.harvesting_date) & (df.time >= df.sowing_date)]
filtered_df = df[filter]
您也可以在一行中執行此操作,但如果您有興趣,這樣可以更輕松地查看“過濾器”在做什么。
不過要注意一點!確保這些日期是日期時間物件;日期通常顯示為字串,因此您需要使用類似的東西strptime()來更改它們。
希望這可以幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/523693.html
