作為標題,我有一個名為 user 的資料
reporttime
0 2020-01-01 00:00:17
1 2020-01-01 00:03:17
2 2020-01-01 00:06:17
3 2020-01-01 00:09:17
. .
. .
. .
2020-12-30 23:59:04
我想洗掉關于 2020-01-02 的所有資料
所以我嘗試
user.drop(user[(user['reporttime'].dt.month.isin(np.arange(0,1)))(user['reporttime'].dt.day.isin(np.arange(2,3)))],axis = 1,inplace= True)
但它失敗了,它丟棄了我做錯了什么的所有資料?
uj5u.com熱心網友回復:
您可以使用.dt.date訪問日期,請考慮以下示例:
import pandas as pd
import datetime
df = pd.DataFrame({"reporttime":pd.to_datetime(["2020-01-01 00:00:17","2020-01-01 00:09:17","2020-12-30 23:59:04"])})
df2 = df[df['reporttime'].dt.date != datetime.date(2020,1,1)]
print(df2)
輸出
reporttime
2 2020-12-30 23:59:04
注意:df為簡潔起見,我將初始記錄限制為 3 條記錄。
uj5u.com熱心網友回復:
我沒有嘗試除錯您的代碼,但是,如果日期存盤為字串而不是時間序列。您可以使用簡單的掩碼來實作此目的。
dateMask = (user['reporttime'] > '2020-01-02 00:00:00') &
(user['reporttime'] < '2020-01-02 23:59:59')
user = user[~dateMask] #this also gets rid of any other columns related to that date
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414612.html
標籤:
