pandas报AttributeError: 'DataFrame'オブジェクトに属性 'ix'がありません

実際の運用では、収集したデータや分析したデータをExcelに保存し、実行に応じて列名を並べ替える必要がある場合があります。当初はDataFrameのixメソッドを使用して期待を実現しましたが、最近ではこのメソッド関数が削除されると、操作は次のエラーをスローします。

Traceback (most recent call last):
  File "test.py", line 149, in <module>
    test()
  File "test.py", line 143, in test
    result_data, cols = add_excel(sheet_list, cols, excels, self.path)
  File "test.py", line 47, in add_excel
    DataFrame = DataFrame.ix[:, cols]
  File "E:\project\test\venv\lib\site-packages\pandas\core\generic.py", line 5273, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'ix'
根本的な原因

より高いバージョンのパンダがインストールされたため、一部の非推奨のメソッドと関数が正式に削除されました。詳細については、以下を参照してください。非推奨の関数の正式な削除を表示するにはクリックしてください

解決

公式の指示によると、ixは削除され、.ilocに置き換えることができます。

# DataFrame.ix[:, cols] # 已移除,不推荐使用
DataFrame.iloc[:, cols] # 列按指定下标排序 cols=【0,2,1】 
DataFrame.loc[:, col_header] # 列按指定下标排序 cols=【'col','col1'】

おすすめ

転載: blog.csdn.net/Lin_Hv/article/details/109285916