ホーム>source

私は次のステートメントを試しました:

<前>ウィズウィズ

この理由がわかりませんでした。インデックスがある場合、なぜ列が追加されないのですか?

import pandas as pd df = pd.DataFrame(index=[i for i in range(5)]) df.columns = ["res"+str(i) for i in range(5)] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python35\lib\site-packages\pandas\core\generic.py", line 5080, in __setattr__ return object.__setattr__(self, name, value) File "pandas\_libs\properties.pyx", line 69, in pandas._libs.properties.AxisProperty.__set__ File "C:\Python35\lib\site-packages\pandas\core\generic.py", line 638, in _set_axis self._data.set_axis(axis, labels) File "C:\Python35\lib\site-packages\pandas\core\internals\managers.py", line 155, in set_axis 'values have {new} elements'.format(old=old_len, new=new_len)) ValueError: Length mismatch: Expected axis has 0 elements, new values have 5 elements
あなたの答え
  • 解決した方法 # 1

    問題は最初に作成されると思います列がない DataFrame なので、列名を割り当てたい場合は失敗しました。

    解決策はパラメーター columns を追加することです  DataFrameコンストラクターでは、インデックスを単純化する必要があります- range のみを割り当てます :

    <前>ウィズウィズ

    インデックスのみのDataFrameの後に割り当てたい場合は df = pd.DataFrame(index= range(5), columns=["res"+str(i) for i in range(5)]) print (df) res0 res1 res2 res3 res4 0 NaN NaN NaN NaN NaN 1 NaN NaN NaN NaN NaN 2 NaN NaN NaN NaN NaN 3 NaN NaN NaN NaN NaN 4 NaN NaN NaN NaN NaN を使用します :

    <前>ウィズウィズ

  • 解決した方法 # 2

    <前>ウィズウィズ DataFrame.reindex

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ c# - SqlException:DELETEステートメントがREFERENCE制約「FK_Payment_Student」と競合しました