gpt4 book ai didi

python - 按跨年份的日历周分组

转载 作者:太空宇宙 更新时间:2023-11-03 19:58:15 28 4
gpt4 key购买 nike

我想按日历周对数据进行分组。不过,我有很多年的数据。因此,不是单独按周数,而是按每年单独计算。这是一个例子。

ix = pd.DatetimeIndex(['2019-12-25', '2019-12-28', '2019-12-31', '2020-01-03'])
df = pd.DataFrame({'col': [1, 1, 1, 1]}, index=ix)

我的问题是第一周的日子仍然是上一年的。

>>> df.groupby([ix.year, ix.month, ix.week]).count()

count
2019 12 1 1
52 2
2020 1 1 1

我如何分组才能产生日历周?这里它将产生两组,每组两行。

最佳答案

获取从纪元日期 (1/1/1970) 算起的周数可能会有所帮助。

day_delta = pd.to_datetime(df.index) - pd.to_datetime('19700101')
df['day'] = (day_delta / np.timedelta64(1, 'D')).astype(int) - 3 # considering week start as sunday
df['week'] = df['day'].apply(lambda x: int(x / 7))
print(df)

输出:

            col    day  week
2019-12-25 1 18252 2607
2019-12-28 1 18255 2607
2019-12-31 1 18258 2608
2020-01-03 1 18261 2608

这给出了 2019-12-31 和 2020-01-03 在同一周内。

我想您需要计算纪元日期中的月份数和年份数,并使用年、月和周数(从纪元日期开始)对它们进行分组

关于python - 按跨年份的日历周分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59424702/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com