我正在尝试在我的数据框架上创建时间结构。
我有一个名为'day'的数据框,df ['day']从1到365跨越,缺少数字,看起来像
df = pd.DataFrame({'day': [1,2,2,2,3,4,5,5,8,8,9,9,10,11,11,12,13]})
我想创建一个新的列'weekOftheYear',这样每5天显示一周。结果数据框应如下所示:
day week
1 1
2 1
2 1
2 1
3 1
... ...
8 2
8 2
9 2
... ...
提前感谢您的任何提示!
答案 0 :(得分:2)
我认为需要:
df['week'] = (df['day'] + 2) // 7 + 1
答案 1 :(得分:1)
我不确定为什么你会每隔5天显示一下你想要显示的内容,但我相信这个解决方案对你有用。
df['week'] = df['day'].apply(lambda x: x//7+1)
OP评论后编辑。
如果您想要获得1和5-11等等,那么您只需要将所有日期都移动n
。
df = pd.DataFrame({'day': [1,1,2,2,5,5,6,6,6,7,8,8,9,9]})
df['fixed_days'] = df['day'] + 2
df['week'] = df['fixed_days'].apply(lambda x: x//7+1)
df.drop('fixed_days', axis=1, inplace=True)
df.head()
打印
day week
0 1 1
1 1 1
2 2 1
3 2 1
4 5 2