在无时间序列数据集中创建新列周
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
我正在尝试在我的数据帧上创建一个时间结构。
我有一个数据框,其中有一列名为 '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