Pandas datetime 天频到周频

Pandas datetime day frequency to week frequency

Q1: 我有以下 pandas 数据框:

有大量的行,而且每天都出现频率(Data 列)。 我想以一周为单位转换数据框,这意味着频率不是日记,而是现在是每周一次。此外,金钱和工人是 "week sum".

Q2: 是否可以定义一周的开始日期(按日期)?

首先确保您的 "Date" 列是 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 传递给 W-Sun。所以如果你有约会对象

date=pd.to_datetime('2012-03-31')

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

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

'W-Sat'

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

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

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

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