Pythonでエクセルファイルを読み込んだんだけど、必要な列のみ抽出したい!
そんなお悩みを、Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
PythonのDataFrameで複数列を抽出するには
「filter」を使います。まずは実行見本をどうぞ。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import pandas as pd
df = pd.read_excel('input.xlsx')
df = df.filter(items = ['社員番号', '名前', '部署名'])
df.to_excel('output.xlsx', index = None)
df = df.filter(items = ['社員番号', '名前', '部署名'])
事前準備
- pandasのインストール
今回の本題とは直接関係ありませんが、エクセルファイルの読み込みをする際に「pandas」が必要になります。
pandasのインストール方法
pandasを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install pandas
※pandasを使用したことがある場合は、このインストール作業は不要です。
解説
列の抽出
>>5.df = df.filter(items = [‘社員番号’, ‘名前’, ‘部署名’])
この一文で必要な列のみ抽出できます。
【 変数名 = 変数名.filter(items = [‘抽出したい列名A’, ‘抽出したい列名B’, ‘抽出したい列名C‘,・・・]) 】
列名をカンマで区切ることにより、抽出したい複数の列を指定できます。
その他の解説
「read_excel」などは下記記事で解説しております。ご参考ください。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
指定した列が残っていない
filterで指定した列名が表の中に無い場合、抽出はスキップされます。
指定した列名と表の中の列名が一致しているか確認しましょう。
スペースが入っていたり、改行が入っていたりすることがよくあります。
列が抽出されていない(元のまま)
「df.filter()」だけでは出力ファイルに反映されません。
df = df.filter()
など、別の変数や元の変数に再代入し、その変数を出力しましょう。
まとめ
Pythonのdataframeで複数列を抽出する方法を解説いたしました。
元データから必要な部分のみを抽出することは意外と多いですので、少しでも助けになれば幸いです。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!