Pandasdatetime日频率到周频率

2024-04-30 05:17:24 发布

您现在位置:Python中文网/ 问答频道 /正文

问题1: 我有以下熊猫数据帧:

enter image description here

每天都有大量的行(Data列)。 我想在一周的基础上转换数据帧,这意味着频率不是日记而是每周。同样地,钱和工人就是“周总和”。在

问题2: 是否可以定义一周的开始日期(按日期)?在


Tags: 数据data定义基础频率日记工人总和
1条回答
网友
1楼 · 发布于 2024-04-30 05:17:24

首先确保“日期”列的类型为datetime。
考虑这个例子:

tidx = pd.date_range('2012-01-01', periods=1000)
df = pd.DataFrame(dict(
        Money=np.random.rand(len(tidx)) * 1000,
        Workers=np.random.randint(1, 11, len(tidx)),
        Date=tidx
    ))

当我们resample时,我们可以传递一个表示我们重新采样的时间单位的字符串。当使用W数周时,我们实际上可以通过W-Mon到{}。所以如果你有约会

^{pr2}$

那是星期六,我们可以生成正确的重采样单元字符串

'W-{:%a}'.format(date)

'W-Sat'

然后我们可以用它重新取样

df.resample('W-{:%a}'.format(date), on='Date').sum().reset_index()

enter image description here

简单的答案是resample没有它,这会产生一个不同的起点。在

df.resample('W', on='Date').sum().reset_index()

enter image description here

相关问题 更多 >