

本記事では、PythonでできるExcel操作のまとめ一覧を紹介します。
想定読者
・PythonでExcel操作を行い、会社の仕事を効率化したい。
・Excel操作とPythonでのやり方を一覧で確認したい。
本記事について
・Excel操作に対応するPythonでの処理方法を一覧で紹介します。
・本記事は、「openpyxl」でExcel 操作を自動するものではなく、データをPandasで読み込み、Python/Pandasでのデータの処理方法を記載しています。
・本記事のリンク先では、実務に近いデータを用いて、書き方の詳細を解説しています。
・本記事(リンク先含む)は次の実行環境の内容を記載しています。
Python 3.7.6、Jupyterlab 1.2.6、Pandas:1.1.2
目次
PythonでできるExcel操作のまとめ一覧
PythonでできるExcel操作の一覧は、次の通りとなります。
※DataFrame名をdfとしています。
Excel操作 | Pythonでの処理 | リンク |
Excelファイルを開く | pd.read_excel(‘ファイル名.xlsx', sheet_name=‘シート名') | [詳細] |
行数・列数を確認 | df.shape | [詳細] |
列項目を確認 | df.columns | [詳細] |
ある列の一意の"値"を確認 | df['列名'].unique() | [詳細] |
ある列の一意の値の"数"を確認 | df['列名'].nunique() | [詳細] |
ある列の値の個数を確認(COUNTIF関数) | df['列名'].value_counts() | [詳細] |
列のデータ型の確認 | df.dtypes | [詳細] |
列のデータ型の変換 | df.astype({'列名': 'str'}) ※文字列への変換 | [詳細] |
列の追加 | df['追加する列名'] = 値 or リスト | [詳細] |
行の追加 | df.loc['追加する行名'] = 値 or リスト | [詳細] |
列の削除 | df = df.drop(['削除する列名1', '削除する列名2'], axis=1) | [詳細] |
行の削除 | df = df.drop(['削除する行名1', '削除する行名2']) | [詳細] |
列・行の項目名の変更 | df = df.rename(columns={変更前:変更後}, index={変更前:変更後}, ) | [詳細] |
空白セル(欠損値)の確認 | df.isnull().sum() | [詳細] |
空白セル(欠損値)の除外 | df.dropna(how='any') など | [詳細] |
空白セル(欠損値)の補完 | df['列名'].fillna('補完内容') | [詳細] |
空白セル(欠損値)の符号化 | df['列名'].isnull().apply(lambda x : '1' if x else '0') | [詳細] |
数値列の統計量を確認 | df.describe() | [詳細] |
特定の列だけを表示 | df[['列名1', '列名2', '列名3']] | [詳細] |
フィルター(完全一致) | df[df['列名'] == '値'] | [詳細] |
フィルター(部分一致) | df[df['列名'].str.contains('文字')] | [詳細] |
フィルター(数値の大小関係) | df[df['数値列名'] >= 値] | [詳細] |
フィルター(複数条件) | フィルターを&, |で結合 | [詳細] |
ソート(1列) | df.sort_values('列名') | [詳細] |
ソート(複数列) | df.sort_values(['列名1', '列名2']) | [詳細] |
置換(完全一致) | df.replace('置換前の値', '置換後の値') | [詳細] |
置換(部分一致) | df['列名'].apply(lambda x: x.replace('置換前の値', '置換後の値')) | [詳細] |
置換(条件分岐あり) | df['列名'].where(条件式, 置換後の値) | [詳細] |
MID、LEFT、RIGHT関数 | df['列名'].str[2:] ※数値は例 | [詳細] |
IF関数(条件分岐で値設定-2分類) | df['列名'].apply(lambda x : '値1' if 条件 else '値2') | [詳細] |
IF関数(条件分岐で値設定-多値分類) | df['列名'].map(条件分岐の自作関数) | [詳細] |
VLOOKUP関数 | df1.merge(df2, on='キー', how='left') | [詳細] |
SUMIF関数(グループ集計) | df.groupby('列名').sum() | [詳細] |
ピボットテーブル | df.pivot_table([ 略 ]) | [詳細] |
3桁区切りカンマ | applymap('{:,.0f}'.format) | [詳細] |
Excelファイル作成・出力 | df.to_excel('ファイル名.xlsx') | [詳細] |
Excelファイル作成・出力(複数シート) | pd.ExcelWriter('ファイル名.xlsx', engine = 'xlsxwriter') | [詳細] |
内容は、定期的にアップデートしていきます。
「PythonでできるExcel操作のまとめ一覧」の作成目的と使い方
僕が本業のExcel作業をPythonを使って効率化したいと思い、Python/Pandasの基本文法、Excelと対応したPythonの書き方などを調べるのに「100時間」ほど要していました。
これだけ時間を要した理由は大きく2つあります。
・基本文法の細かい部分まで頭で理解しようとして、インプットに時間をかけすぎていた。
・情報元がバラバラで、その都度Google検索し、参考になりそうなサイトを探していた。
この2つを解決するために、
・実務のExcel作業の代替としてすぐ使えるコードで、情報を最小限にする。
・Excelの操作内容と対応させて一覧化する。
を実現できるように本記事を作成しました。
本記事で、他の方が僕みたいに多くの時間・労力をかけず、PythonでExcel作業の効率化ができることを願っています。
本記事は、ブックマークやお気に入りにいれて、いつでも使える早見表として使ってもらえればと思います。
【参考】Python / PandasでExcel操作を行うメリット
参考として、Python / PandasでExcel操作(おもにデータ集計作業)を行うメリットを紹介します。
メリットというとたくさんあるかもしれませんが、ここでは僕自身が助かっている5つをピックアップします。
・インプットデータが変わっても同じ操作が簡単にできる。
・画面上でのセルの操作でないため、処理が速い。
・Excelの関数では複雑になる処理でも、シンプルに分かりやすく処理内容を書ける。
・処理内容をメモ・記録できることで、他の人に共有・引継ぎできる。
・スケジューラーやバッチファイルを使えば、処理の自動化に応用できる。
いかがでしたがでしたか。
最初はPythonに慣れる必要があるといえど、メリットは非常に多いですよね。
それでは、どんどんExcel作業をPythonでやって、業務を効率化・高度化していきましょう〜
<<以下、2020年10月26日に追記>>
今、流行りのデータサイエンティストを目指している方向けの内容になります。
【おまけ】筆者が考えるデータサイエンティストのロードマップ
データサイエンティストを目指すには、まずは次の3ステップの順で行うのがおすすめです。ぜひ参考までに〜
step
1 まずは、もっとデータサイエンティストを知る!!
一番いいのは、現役のPythonエンジニア、データサイエンティストから実際の情報を仕入れること。
方向性ややり方を間違えて、時間と労力を無駄にしないためにも。
ちなみに今は、CodeCampが無料でマンツーマンレッスンをやってるのでおすすめです。(2020/10時点)
「Pythonデータサイエンスコースの体験」と言えば、いろんな情報が聞けます。是非、今のチャンスに!!
step
2 PythonでExcel作業をやってみる!!
データサイエンティストになるには、Pythonがいいってよく言われます。
関連記事データサイエンス完全初心者がPython(パイソン)をやるべき3つの理由
ただ、目的なく漠然と取り組んでも、長続きしません。
だから、まずは、身近な目標を作ることが大事。
そこで普段会社や学校でExcel使いますよね。このExcel作業をPythonでやってみるのがおすすめです。
なので、まず本記事のPythonでのExcel操作をマスターできるようにします。
これは、次のツイートでも話題になっていて、ある程度、客観的にも有用性があります。
かめさん(@usdatascientist )のPython講座を参考に、PythonでExcel操作を代替するための方法をまとめてみました。
未経験からデータサイエンティストを目指す人って、最初からAIや機械学習に目が行きがちですが、目先のExcel作業を効率化するのもオススメだと思ってます。https://t.co/gkDFF0RU4U
— inasala| #AI・Python勉強記録 を毎日発信 (@inasala_ai) October 21, 2020
step
3 Pythonでデータを可視化し分析する!!
ここでようやく肝となるデータ分析に取り組みます。併せて、統計学や数学も学ぶのが良いです。
kaggleやsignateのコンペに参加するのもアリです。
ステップ3までくれば、もう自らの意志でデータサイエンティストを目指す行動が分かってきます。
ぜひ、ステップ3までをなんとか上り詰めましょう〜
以上となります。
最後まで読んで頂き、ありがとうございました。