【发布时间】:2017-05-28 05:13:09
【问题描述】:
第一季度: 我有以下熊猫数据框:
每天都有大量行(Data 列)。 我想以周为基础转换数据框,这意味着频率不是日记,但现在是每周。同样,金钱和工人是“周总和”。
第二季度: 是否可以定义一周的开始日期(按日期)?
【问题讨论】:
标签: python pandas date data-conversion
第一季度: 我有以下熊猫数据框:
每天都有大量行(Data 列)。 我想以周为基础转换数据框,这意味着频率不是日记,但现在是每周。同样,金钱和工人是“周总和”。
第二季度: 是否可以定义一周的开始日期(按日期)?
【问题讨论】:
标签: python pandas date data-conversion
首先确保您的“日期”列是日期时间类型。
考虑这个例子:
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-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()
简单的答案是resample 没有它,这会产生不同的起点。
df.resample('W', on='Date').sum().reset_index()
【讨论】: