我在以前的問題中搜索,但它不能解決我正在搜索的問題,請你幫幫我
我有一個資料集來自
Date T2M Y T F H G Week_Number
0 1981-01-01 11.08 17.35 6.94 0.00 5.37 4.63 1
1 1981-01-02 10.82 16.41 7.51 0.00 5.55 2.73 1
2 1981-01-03 10.74 15.64 7.35 0.00 6.23 2.33 1
3 1981-01-04 11.17 15.99 8.46 0.00 6.16 1.66 1
4 1981-01-05 10.20 15.60 6.87 0.12 6.10 2.78 2
5 1981-01-06 10.35 16.16 5.95 0.00 6.59 3.92 2
6 1981-01-07 12.26 18.24 9.30 0.00 6.10 2.30 2
7 1981-01-08 12.76 19.23 8.72 0.00 6.29 3.96 2
8 1981-01-09 12.61 17.80 8.90 0.00 6.71 2.05 2
我已經使用此代碼創建了一列周數
df['Week_Number'] = df['Date'].dt.week
但它只給了我一年中設計第一周的前四天,也許這意味著一周從星期一開始。在我的情況下,如果從星期一或另一天開始,我不感興趣,我只想每 7 天細分每年一次(每年每 7 天分組一次,例如從 1 1 1980 到 07 1 1980 FISRT WEEK,然后繼續, 并且每一年的第一周也從 1 1 xxxx 開始
uj5u.com熱心網友回復:
如果您希望您的周數從 1 月 1 日開始,而不考慮星期幾,只需獲取一年中的日期,減去 1 并計算整數除以 7:
df['Date'] = pd.to_datetime(df['Date'])
df['week_number'] = df['Date'].dt.dayofyear.sub(1).floordiv(7).add(1)
注意。如果您希望第一周從 0 開始,則無需添加 1
輸出:
Date T2M Y T F H G Week_Number week_number
0 1981-01-01 11.08 17.35 6.94 0.00 5.37 4.63 1 1
1 1981-01-02 10.82 16.41 7.51 0.00 5.55 2.73 1 1
2 1981-01-03 10.74 15.64 7.35 0.00 6.23 2.33 1 1
3 1981-01-04 11.17 15.99 8.46 0.00 6.16 1.66 1 1
4 1981-01-05 10.20 15.60 6.87 0.12 6.10 2.78 2 1
5 1981-01-06 10.35 16.16 5.95 0.00 6.59 3.92 2 1
6 1981-01-07 12.26 18.24 9.30 0.00 6.10 2.30 2 1
7 1981-01-08 12.76 19.23 8.72 0.00 6.29 3.96 2 2
8 1981-01-09 12.61 17.80 8.90 0.00 6.71 2.05 2 2
然后您可以使用新列來groupby,例如:
df.groupby('week_number').agg({'Date': ['min', 'max'], 'T2M': 'sum'})
輸出:
Date T2M
min max sum
week_number
1 1981-01-01 1981-01-07 76.62
2 1981-01-08 1981-01-09 25.37
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/479572.html
上一篇:liquibase.exception.DatabaseException:ORA-01950:對表空間“VMSS_TBS”沒有權限
下一篇:如何正確地將年月轉換為年季
