将月末数据拆分为数周

时间:2017-10-04 15:53:06

标签: python pandas datetime indexing pandas-groupby

想将每月数据分成几周。这是试过的代码:

import pandas as pd
import datetime

d = {'By' : pd.Series(pd.date_range('20171030', periods=2, freq='M')),
     'Qty': pd.Series([100,200], index=range(2))}
df = pd.DataFrame(d)
df.resample('W').sum()

...给我

  

仅对DatetimeIndex,TimedeltaIndex或PeriodIndex有效,但得到'RangeIndex'错误的实例。

希望将_Qty_值除以_Sundays_

了解如何使用以下方式获取date_range:

<code>dates = pd.DataFrame(pd.date_range(min(df.By), max(df.By), freq="W-Sun"), columns=['Week'])</code>

...但不知道如何生成拆分。

2 个答案:

答案 0 :(得分:1)

如异常所示,pd.DataFrame.resample要求您拥有某种类型的日期时间索引;目前,您的日期时间值位于“&#39; By&#39;”列中。将所述列移动到您的DataFrame索引,重新采样按预期工作:

df.set_index('By').resample('W-Sun').sum()
#               Qty
# By               
# 2017-11-05  100.0
# 2017-11-12    NaN
# 2017-11-19    NaN
# 2017-11-26    NaN
# 2017-12-03  200.0

答案 1 :(得分:0)

以下#46579271

回答了问题