2017-07-28 23 views
0

私は、ビットコインの歴史の3つの列で構成されるCSVファイルを持っているが、次のようになります。なぜpython-panda操作でエラーが返されますか?

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() 

I 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' 

私はこれを読んでいても、ドキュメントを読んでいない人ですら間違っていると分かります。

+0

data_priceトライ 'DATA_FRAME [ "日付時刻"] = data_frame.to_datetime(DATA_FRAME [ "日付時刻"]、単位を設定する前に= "S"'。私は気付いていないパンダを推測している10桁の整数です。秒単位の意味が分かりますので、最初に 'unit = 's' 'で変換する必要があります。 – Tony

答えて

1

これはうまくいくと思います。

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() 
+0

それはうまくいかない理由を簡単に説明できますか? –

+1

ohlc()を適用していたときにDate_Time列は整数で、時間は秒単位でしたので、** pd.to_datetime(data_frame.index、unit = 's')**でdatetime形式に変換しました。 – Shadkhan

関連する問題