我們有這個df:
df = pd.DataFrame({
'date': [pd.Timestamp('2020-12-26'), # week 52 of year 2020
pd.Timestamp('2020-12-27'), # last day of week 52 of year 2020
pd.Timestamp('2021-03-10'), # week 10 of year 2021
pd.Timestamp('2022-01-03'), # first day of week 1 of year 2022
pd.Timestamp('2022-01-09')], # last day of week 1 of year 2022
'value' : [15, 15.5, 26, 36, 36.15]
})
我們想要一個df看起來像這樣的新的:
date value
0 202052 15.50
1 202201 36.15
換句話說,我們需要:
- 將“日期”轉換為格式年/周數(并將結果存盤為物件)
- 僅選擇日期對應于一周的最后一天的行
注意 (1) 和 (2) 都需要遵循 ISO-8601 定義的周數。實際資料集有數千行。
我們如何做到這一點?
uj5u.com熱心網友回復:
您可以通過使用dt列上的呼叫來轉換日期格式,從而直接處理該系列。要查找它是否是一周的最后一天,周日對應,7因此我們可以進行相等性檢查。
iso = df.date.dt.isocalendar()
mask = iso.day == 7
df.loc[mask].assign(date=iso.year.astype(str) iso.week.astype(str).str.rjust(2, "0"))
date value
1 202052 15.50
4 202201 36.15
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411003.html
標籤:
上一篇:PowerBI:按間隔過濾
