0

hd5ファイルを作成しました

hdf=pandas.HDFStore(pfad)
hdf.append('df', df, data_columns=True)

有効期限と呼ばれる numpy.datetime64 値を含むリストがあり、列「有効期限」に有効期限[1]と有効期限[0]の間の値を持つhd5テーブルの部分をデータフレームに読み取ろうとします。列の有効期限エントリの形式は Timestamp('2002-05-18 00:00:00') です。

次のコマンドを使用します。

df=hdf.select('df', where=('expiration<expiration[1] & expiration>=expirations[0]'))

ただし、ValueError: Unable to parse x が表示されます。これを正しく行うにはどうすればよいですか?

df.dtypes
Out[37]: 
adjusted stock close price           float64
expiration                    datetime64[ns]
strike                                 int64
call put                              object
ask                                  float64
bid                                  float64
volume                                 int64
open interest                          int64
unadjusted stock price               float64

df.info
Out[36]: 
<bound method DataFrame.info of             adjusted stock close price expiration  strike call put      ask  date                                                                          
2002-05-16                     5047.00 2002-05-18    4300        C  802.000   

列は他にもありますが、クエリには関係ありません。

4

1 に答える 1

0

問題が解決しました!

で有効期限を取得しました

 df_expirations=df.drop_duplicates(subset='expiration')
 expirations=df['expiration'].values

これにより、明らかに数値形式が datetime から tz datetime に変更されました。私はこれを使用して再構築しました

 expirations=df['expirations']

現在、このクエリは機能しています: del df df=hdf.select('df', where=('expiration=expirations[1]'))

日時形式の問題を指摘してくれてありがとう。

于 2014-11-28T10:08:46.360 に答える