Dav*_*ook 13 python time-series pandas
我正在尝试使用Python/Pandas来构建一些图表.我有每秒采样的数据.这是一个示例:
Index, Time, Value
31362, 1975-05-07 07:59:18, 36.151612
31363, 1975-05-07 07:59:19, 36.181368
31364, 1975-05-07 07:59:20, 36.197195
31365, 1975-05-07 07:59:21, 36.151413
31366, 1975-05-07 07:59:22, 36.138009
31367, 1975-05-07 07:59:23, 36.142962
31368, 1975-05-07 07:59:24, 36.122680
Run Code Online (Sandbox Code Playgroud)
我需要创建各种窗口来查看数据.10,100,1000等.不幸的是,当我试图窗口整个数据框时,我得到下面的错误...
NotImplementedError: ops for Rolling for this dtype datetime64[ns] are not implemented
Run Code Online (Sandbox Code Playgroud)
我查看了这些文档:http://pandas.pydata.org/pandas-docs/stable/computation.html作为参考,他们似乎在日期范围内这样做.我注意到它们之间的数据类型和我拥有的数据类型是不同的.
是否有捷径可寻?
理想情况下,这正是我想要做的:
tmp = data.rolling(window=2)
tmp.mean()
Run Code Online (Sandbox Code Playgroud)
我正在使用plotly绘制原始数据,然后在其上绘制窗口数据.我的目标是找到理想的窗口,用于识别数据中更清晰的趋势,消除一些噪音.
谢谢!
补充说明:
我想我需要从这种格式中获取数据:
pandas.core.series.Series到这个:
pandas.tseries.index.DatetimeIndex
piR*_*red 13
from StringIO import StringIO
import pandas as pd
text = """Index,Time,Value
31362,1975-05-07 07:59:18,36.151612
31363,1975-05-07 07:59:19,36.181368
31364,1975-05-07 07:59:20,36.197195
31365,1975-05-07 07:59:21,36.151413
31366,1975-05-07 07:59:22,36.138009
31367,1975-05-07 07:59:23,36.142962
31368,1975-05-07 07:59:24,36.122680"""
df = pd.read_csv(StringIO(text), index_col=0, parse_dates=[1])
df.rolling(2).mean()
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)NotImplementedError: ops for Rolling for this dtype datetime64[ns] are not implemented
首先,这是@BrenBarn评论的确认,如果他决定发布答案,他应该得到信用.BrenBarn,如果你决定回答,我会删除这篇文章.
熊猫不知道日期值的滚动意义应该是什么. df.rolling(2).mean()试图滚动和平均两个Time和Value列.错误是礼貌地(或不礼貌地,取决于你的观点)告诉你,你正在尝试一些非感性的东西.
将Time列移动到索引然后......好吧就是这样.
df.set_index('Time').rolling(2).mean()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8724 次 |
| 最近记录: |