実際の運用では、収集したデータや分析したデータを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'】