【发布时间】:2020-12-14 00:40:19
【问题描述】:
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
如果它更准确就更好了,因为每个月都有不同的一周的第一天开始,但我不知道该怎么做。
【问题讨论】:
-
将所有
elif块取消缩进 1 个单位。
标签: python python-3.x pandas if-statement conditional-statements