Python 熊猫日期时间日频率到周频率

Python 熊猫日期时间日频率到周频率,python,pandas,date,data-conversion,Python,Pandas,Date,Data Conversion,问题1: 我有以下数据帧: 每天都有大量的行(数据列)。 我想在一周的基础上转换数据帧,这意味着频率不是日记,而是现在的每周。还有,钱和工人就是“周总和” 问题2: 是否可以定义一周的开始日期(按日期)?首先确保“日期”列的类型为datetime。 考虑这个例子: tidx = pd.date_range('2012-01-01', periods=1000) df = pd.DataFrame(dict( Money=np.random.rand(len(tidx)) * 1

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

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

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

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

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

date=pd.to_datetime('2012-03-31')
这是一个星期六,我们可以生成正确的重采样单位字符串

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

'W-Sat'
然后我们可以用它重新取样

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

简单的答案是在不使用它的情况下重新采样,这会产生一个不同的起点

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