[英]Convert day of the month to week
Expected Output: df
year | month | day | week
2019 | 3 | 1 | 1
2017 | 12 | 15 | 2
2016 | 9 | 28 | 4
2020 | 4 | 22 | 3
我想將天(1 到 31)轉換為周。 例如,如果天是 1-8,則是第 1 周。如果天是 9-16,則是第 2 周,依此類推。
但是,以下代碼返回無效的語法。
for row in df:
if df['day'] <= 8:
df['Week'] = 1
elif df['day'] <= 16:
df['Week'] = 2
elif df['day'] <= 24:
df['Week'] = 3
else:
df['Week'] = 4
如果它更准確,那就更好了,因為每個月都有不同的開始一周的第一天,但我不知道該怎么做。
如果只需要按天計算week
數,請使用整數除以8
並加1
:
df['week1'] = df['day'] // 8 + 1
print (df)
year month day week week1
0 2019 3 1 1 1
1 2017 12 15 2 2
2 2016 9 28 4 4
3 2020 4 22 3 3
如果需要按日期時間按周首先使用to_datetime
然后Series.dt.weekofyear
:
df['week2'] = pd.to_datetime(df[['day', 'month','year']]).dt.weekofyear
print (df)
year month day week week2
0 2019 3 1 1 9
1 2017 12 15 2 50
2 2016 9 28 4 39
3 2020 4 22 3 17
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.