熊猫日期时间频率与周频率

时间:2017-01-12 22:39:05

标签: python pandas date data-conversion

Q1: 我有以下pandas数据帧:

enter image description here

包含大量具有每日频率的行( Data 列)。 我想在一周内转换数据帧,这意味着频率不是日记,但现在是每周。还有这个,钱和工人是“周总和”。

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

1 个答案:

答案 0 :(得分:2)

首先确保您的“日期”列的日期时间类型 考虑这个例子:

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()

enter image description here

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

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

enter image description here