Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 蟒蛇熊猫重采样,奇怪的行为_Python_Pandas - Fatal编程技术网

Python 蟒蛇熊猫重采样,奇怪的行为

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

我有两个数据集(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))
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;看起来坏了。(值得注意的是,在试图找到一个最小的复制示例时,您可能会注意到这一点。^)