如何将DatetimeIndexResampler转换为DataFrame?
问题内容:
我想从系列中构建一个矩阵,但是在此之前,我必须对这些系列进行重新采样。但是,为了避免用两次处理整个矩阵,replace(np.nan, 0.0)
我想将数据帧附加到收集的数据帧中,然后NaN
在一次通过中删除值。
所以代替
user_activities = user.groupby(["DOC_ACC_DT", "DOC_ACTV_CD"]).agg("sum")["SUM_DOC_CNT"].unstack().resample("1D").replace(np.nan, 0)
df = df.append(user_activities[activity].rename(user_id))
我想要
user_activities = user.groupby(["DOC_ACC_DT", "DOC_ACTV_CD"]).agg("sum")["SUM_DOC_CNT"].unstack().resample("1D")
df = df.append(user_activities[activity].rename(user_id))
但这不起作用,因为user_activities
不在之后的数据帧中resample()
。
该错误表明我尝试apply()
但该方法需要一个参数:
/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.pyc in _make_wrapper(self, name)
507 "using the 'apply' method".format(kind, name,
508 type(self).__name__))
--> 509 raise AttributeError(msg)
510
511 # need to setup the selection
AttributeError: Cannot access callable attribute 'rename' of 'SeriesGroupBy' objects, try using the 'apply' method
我该如何解决这个问题?
问题答案:
.resample
在Pandas
0.18.0中,to的接口已更改为更像groupby,因此更加灵活,即resample
不再返回DataFrame:现在在聚合或插值时对其进行“惰性评估”。
我建议阅读重新采样API的更改http://pandas.pydata.org/pandas-
docs/stable/whatsnew.html#resample-api
也可以看看:
-
http://pandas.pydata.org/pandas-docs/stable/timeseries.html#resampling
-
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html
用于升级
df.resample("1D").interpolate()
缩小规模
用均值
df.resample("1D").mean()
使用OHLC
即开高低关值或第一最大最小最后值
df.resample("1D").ohlc()