【发布时间】:2019-09-20 10:55:42
【问题描述】:
我正在使用以下代码生成如下数据框:
我面临的挑战是周数将在 53.0 结束,然后重置回 1.0,之后周数继续计算。
我需要一个解决方案,其中周数持续到 53.0、54.0 直到日期结束(在第一列中找到)。
import pandas as pd
s = pd.date_range('2006-12-16', '2010-11-26', freq='D').to_series()
s.dt.dayofweek
sample = s.dt.dayofweek
df_sample=sample.to_frame()
df_sample.rename(columns = {0: 'Day_num'}, inplace=True)
df_sample.loc[df_sample.Day_num == 5, 'Day_name'] = 'Saturday'
df_sample.loc[df_sample.Day_num == 6, 'Day_name'] = 'Sunday'
df_sample.loc[df_sample.Day_num == 0, 'Day_name'] = 'Monday'
df_sample.loc[df_sample.Day_num == 1, 'Day_name'] = 'Tuesday'
df_sample.loc[df_sample.Day_num == 2, 'Day_name'] = 'Wednesday'
df_sample.loc[df_sample.Day_num == 3, 'Day_name'] = 'Thursday'
df_sample.loc[df_sample.Day_num == 4, 'Day_name'] = 'Friday'
df_sample = df_sample['Day_name'].astype(str)
df_sample = df_sample.to_frame()
df_sample.reset_index(level=0, inplace=True)
df_sample.rename(columns={'index': 'Date'}, inplace=True)
df_sample['Week_Number'] = df_sample['Date'].dt.week
我觉得有一个更简单的解决方案,并请求有更好方法解决这个问题的人提供任何帮助。
【问题讨论】:
标签: python-3.x pandas time-series