在无时间序列数据集中创建新列周

Create new column week in no time series dataset

我正在尝试在我的数据帧上创建一个时间结构。

我有一个数据框,其中有一列名为 '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
...   ...

提前感谢您的任何提示!

我不确定你为什么要每 5 天显示一次你想要显示的内容,但我相信这个解决方案对你有用。

df['week'] = df['day'].apply(lambda x: x//7+1)

OP评论后编辑。

如果 1-4 岁想得到 1,5-11 岁想得到 2,依此类推,那么您只需要将所有时间移动 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

我认为需要:

df['week'] = (df['day'] + 2) // 7 + 1