1

経由でデータフレームを小さなチャンクで hdf5 に送信しようとすると、問題が発生しますpd.HDFStore('mystore.h5', mode='a').append(my_frame, chunk)。チャンクは、列とタイプの点ですべて同じです(同じデータフレームから取得されます)が、多くのチャンクで機能し、途中で爆撃します。

ValueError: cannot match existing table structure for [Net_Bal_Amt,Loan_Current_Rate] on appending data

この失敗の原因となったデータフレーム チャンクを出力します。共通点の 1 つは、特定の列の値がすべて「なし」であることです (元はソースから null です)。これを修正する方法がわかりません。空である限り、None、NaN、または null のままにする必要があります。ありがとう。

Traceback (most recent call last):
  File "[...]\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 3381, in create_axes
    b, b_items = by_items.pop(items)
KeyError: ('Net_Bal_Amt', 'Loan_Current_Rate')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "[...]\crd_test.py", line 8, in <module>
    credit.CRD.hdf_install(overwrite=True, tablenames=['loans_uscrd', 'loans_uscrd_a'])
  File "[...]\credit_base.py", line 62, in hdf_install
    cls._hdf_creation(map_)
  File "[...]\credit_base.py", line 80, in _hdf_creation
    cls._hdf_processing(v, chunk)
  File "[...]\credit_base.py", line 88, in _hdf_processing
    cls.crd.append(frame, chunk)   
  File "[...]\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 903, in append
    **kwargs)
  File "[...]\lib\site-packages\pandas\io\pytables.py", line 1259, in _write_to_group
    s.write(obj=value, append=append, complib=complib, **kwargs)
  File "[...]\lib\site-packages\pandas\io\pytables.py", line 3751, in write
    **kwargs)
  File "[...]\Anaconda3\lib\site-packages\pandas\io\pytables.py", line 3388, in create_axes
    item in items))
ValueError: cannot match existing table structure for [Net_Bal_Amt,Loan_Current_Rate] on appending data

dtype:

pd.read_hdf(r'[...]\crd_test.h5','loans').dtypes
Out[4]: 
Customer_Id                  object
As_of_Date           datetime64[ns]
Net_Bal_Amt                 float64
Loan_Current_Rate           float64
dtype: object

バージョン: pytables:3.1.1 パンダ: 0.15.2 python:3.4

クラッシュ時に追加されるチャンクの dtypes:

Customer_Id                  object
As_of_Date           datetime64[ns]
Net_Bal_Amt                 float64
Loan_Current_Rate            object
dtype: object
4

0 に答える 0