为什么这个python panda操作返回错误?
我有一个包含三列比特币历史记录的CSV文件,如下所示:为什么这个python panda操作返回错误?,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我有一个包含三列比特币历史记录的CSV文件,如下所示: 1500326826,2174.000000000000,0.027612680000 1500326826,2174.000000000000,0.158374090000 1500326826,2174.000000000000,0.100000000000 1500326834,2174.000000000000,2.000000000000 ... 我试图获得10分钟间隔的OHLC,如下所示: data_frame= pd.r
1500326826,2174.000000000000,0.027612680000
1500326826,2174.000000000000,0.158374090000
1500326826,2174.000000000000,0.100000000000
1500326834,2174.000000000000,2.000000000000
...
我试图获得10分钟间隔的OHLC,如下所示:
data_frame=
pd.read_csv('./btcmag/raw_initial_currency_data/krakenUSD.csv',
names=['Date_Time', 'Price', 'Volume'], index_col=0, parse_dates=True)
data_price = data_frame['Price'].resample('10Min').ohlc()
对于exmaple,我尝试了不同的方法:
data_price = data_frame.resample('10Min').ohlc()
但始终在命令行中获取以下信息:
data_price = data_frame['Price'].resample('10Min').ohlc()
File "/Users/john/.virtualenvs/btcmag/lib/python2.7/site-packages/pandas/core/generic.py", line 4729, in resample
base=base, key=on, level=level)
File "/Users/john/.virtualenvs/btcmag/lib/python2.7/site-packages/pandas/core/resample.py", line 969, in resample
return tg._get_resampler(obj, kind=kind)
File "/Users/john/.virtualenvs/btcmag/lib/python2.7/site-packages/pandas/core/resample.py", line 1091, in _get_resampler
"but got an instance of %r" % type(ax).__name__)
TypeError:
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex,
but got an instance of 'Int64Index'
我在这方面完全是个新手,甚至连阅读文档都无法找出问题所在。我认为这会奏效
data_frame= pd.read_csv('./btcmag/raw_initial_currency_data/krakenUSD.csv', names=['Date_Time', 'Price', 'Volume'], index_col=0, parse_dates=True)
data_frame.index = pd.to_datetime(data_frame.index, unit='s')
data_price = data_frame['Price'].resample('10Min').ohlc()
在设置数据价格之前,请尝试
data\u frame[“Date\u Time”]=data\u frame.to\u datetime(data\u frame[“Date\u Time”],unit=“s”
。我猜Pandas没有意识到10位数的整数是秒,所以你需要先用unit='s'
进行转换。它是有效的!你能简单解释一下为什么我做错了吗?当你应用ohlc()时,它将Date\u Time列视为整数,因为时间是以秒为单位的。因此,我使用pd.to\u datetime(data\u frame.index,unit='s')将其转换为datetime格式。