【问题标题】:generating sequential week numbers in multi year data (not week within a year)在多年数据中生成连续的周数(不是一年内的一周)
【发布时间】:2021-11-21 21:50:31
【问题描述】:

我对 python 和 pandas 比较陌生。我有跨越多年的一系列日期的每日计数数据。数据源的勤奋程度有点不平衡,因此日常趋势不太有用。每周总结消除了大部分的障碍。

所以我想从每日日期生成连续的周数,然后继续使用 groupby 生成每周信息。

我可以使用日期时间算术获得连续的天数。如何将其转换为允许我执行以下操作的形式? dfBoth['week'] = (dfBoth['DaysDiff']) // 7

请注意,周可以跨越连续几年,因此提供一年内周数的方法没有帮助。

这是我当前的代码:

print("create sequential week number since first Sunday in 21st century")
df['dt'] = pd.to_datetime(df['date'], infer_datetime_format=True)  ## string -> datetime
df['BaseDate'] = pd.to_datetime('01/02/2000', infer_datetime_format=True) ## datetime of basedate
df['DaysDiff'] = (df['dt'] - df['BaseDate']).dt.days  ## days since base date
# how to convert to integer or other form that allows the following:
     df['week'] = df['DaysDiff'] // 7


 

【问题讨论】:

    标签: python datetime


    【解决方案1】:

    对于提交此问题,我深表歉意。早期版本的代码生成了不允许除法的类型的值。我已将其“清理”以提交以使问题“更清楚”,从而解决了问题。

    df.dtypes告诉我,我提交的代码生成的DaysDiff列是int64类型,可以分割。

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多