無法找到解決我的問題的方法。假設(shè)我有一個(gè) df:df = pd.DataFrame({'col':np.random.randn(len(date_rng)),'created_at':pd.date_range('2020-01-01', '2020-12-31', freq='D')})df輸出是: col created_at0 1.764052 2020-01-011 0.400157 2020-01-022 0.978738 2020-01-033 2.240893 2020-01-044 1.867558 2020-01-05... ... ...361 0.003771 2020-12-27362 0.931848 2020-12-28363 0.339965 2020-12-29364 -0.015682 2020-12-30365 0.160928 2020-12-31所以問題是我想過濾數(shù)據(jù)框以顯示過去 6 個(gè)月到月初的數(shù)據(jù)。例如,如果今天(2020 年 10 月 23 日),我希望數(shù)據(jù)框提供 4 月 1 日以來的結(jié)果。如果是 11 月,則無論 11 月的日期如何,第一個(gè)日期結(jié)果都應(yīng)為 5 月 1 日。關(guān)于如何做到這一點(diǎn)有什么想法嗎?這應(yīng)該自動(dòng)運(yùn)行,所以類似:df = df[(df.created_at.dt.month >= datetime.datetime.utcnow().month) & (df.created_at.dt.year==datetime.datetime.utcnow().year)]不會(huì)工作。謝謝?。?!
1 回答

鴻蒙傳說
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用 Between 來指定兩個(gè)值之間的條件:
today = datetime.today()
target = today - timedelta(days=180)
df = df[lambda x: x['created_at'].between(datetime(target.year,target.month,1),today)]
添加回答
舉報(bào)
0/150
提交
取消