Python 蟒蛇熊猫重采样,奇怪的行为
我有两个数据集(cex2.txt和cex3),我想在熊猫中重新取样。使用一个数据集,我得到了预期的输出,而另一个则没有。 数据集是刻度数据,格式完全相同。实际上,这两个数据集只来自两个不同的日子Python 蟒蛇熊猫重采样,奇怪的行为,python,pandas,Python,Pandas,我有两个数据集(cex2.txt和cex3),我想在熊猫中重新取样。使用一个数据集,我得到了预期的输出,而另一个则没有。 数据集是刻度数据,格式完全相同。实际上,这两个数据集只来自两个不同的日子 import pandas as pd import datetime as dt pd.set_option ('display.mpl_style', 'default') time_converter = lambda x: dt.datetime.fromtimestamp(float(x
import pandas as pd
import datetime as dt
pd.set_option ('display.mpl_style', 'default')
time_converter = lambda x: dt.datetime.fromtimestamp(float(x))
data_frame = pd.read_csv('cex2.txt', sep=';', converters={'time': time_converter})
data_frame.drop('Unnamed: 7', axis=1, inplace=True)
data_frame.drop('low', axis=1, inplace=True)
data_frame.drop('high', axis=1, inplace=True)
data_frame.drop('last', axis=1, inplace=True)
data_frame = data_frame.reindex_axis(['time', 'ask', 'bid', 'vol'], axis=1)
data_frame.set_index(pd.DatetimeIndex(data_frame['time']), inplace=True)
ask = data_frame['ask'].resample('15Min', how='ohlc')
bid = data_frame['bid'].resample('15Min', how='ohlc')
vol = data_frame['vol'].resample('15Min', how='sum')
print ask
从cex2.txt数据集中,我得到了以下错误输出:
open high low close
1970-01-01 01:00:00 NaN NaN NaN NaN
1970-01-01 01:15:00 NaN NaN NaN NaN
1970-01-01 01:30:00 NaN NaN NaN NaN
1970-01-01 01:45:00 NaN NaN NaN NaN
1970-01-01 02:00:00 NaN NaN NaN NaN
1970-01-01 02:15:00 NaN NaN NaN NaN
1970-01-01 02:30:00 NaN NaN NaN NaN
1970-01-01 02:45:00 NaN NaN NaN NaN
1970-01-01 03:00:00 NaN NaN NaN NaN
1970-01-01 03:15:00 NaN NaN NaN NaN
从cex3.txt数据集中,我得到了正确的值:
open high low close
2014-08-10 13:30:00 0.003483 0.003500 0.003483 0.003485
2014-08-10 13:45:00 0.003485 0.003570 0.003467 0.003471
2014-08-10 14:00:00 0.003471 0.003500 0.003470 0.003494
2014-08-10 14:15:00 0.003494 0.003500 0.003493 0.003498
2014-08-10 14:30:00 0.003498 0.003549 0.003498 0.003500
2014-08-10 14:45:00 0.003500 0.003533 0.003487 0.003533
2014-08-10 15:00:00 0.003533 0.003600 0.003520 0.003587
我真是束手无策。有人知道为什么会这样吗
编辑:
以下是数据来源:
谢谢 在进行重采样之前,尝试检查数据帧中包含哪些数据类型。data_frame.dypes刚刚检查了它,两次都是完全相同的数据类型。一个比较常见的问题是有一行包含字符串或非数字的内容。或者一个文件有头,而另一个没有。仔细检查其中一列中是否存在导致问题的垃圾。通常情况下,打印dypes会让您很快知道,但并不总是这样。当我加载cex2时,有一行的日期是1969-12-31 18:00:00.003500。看起来是个错误,因为几乎每一行都是最近几天的。。因此,重采样将尝试在垃圾日期和当前日期之间进行填充,您将看到错误。你的数据中有一个垃圾行。是的,行
0.00351055;1407627785;0.0035;0.00325064;88029.42722427;代码>看起来坏了。(值得注意的是,在试图找到一个最小的复制示例时,您可能会注意到这一点。^)