Q1:
我有以下熊猫数据框:

python -  Pandas datetime到周的频率-LMLPHP

每天都有大量行(“数据”列)。
我想以一周为单位转换数据框,这意味着频率不是日记,而是现在是每周。同样,金钱和工人就是“周总和”。

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

最佳答案

首先,请确保您的“日期”列的类型为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()


python -  Pandas datetime到周的频率-LMLPHP

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

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


python -  Pandas datetime到周的频率-LMLPHP

10-07 13:28