Python × Excel

【保存版】PythonでできるExcel操作のまとめ一覧

2020-10-21

【保存版】PythonでできるExcel操作のまとめ一覧

 

Excelで作業するのって大変だな〜 なにか楽な方法ないかな〜

 

Excelの集計や単純作業は、Pythonで楽にできるよ!!この一覧を見て〜

 

本記事では、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データサイエンスコースの体験」と言えば、いろんな情報が聞けます。是非、今のチャンスに!!

\マンツーマン指導の「CodeCamp」/

まず内容を見てみる

無料でなんでも聞いてみよう!!

 

step
2
PythonでExcel作業をやってみる!!

データサイエンティストになるには、Pythonがいいってよく言われます。

 

関連記事データサイエンス完全初心者がPython(パイソン)をやるべき3つの理由

 

ただ、目的なく漠然と取り組んでも、長続きしません。

だから、まずは、身近な目標を作ることが大事

そこで普段会社や学校でExcel使いますよね。このExcel作業をPythonでやってみるのがおすすめです。

 

なので、まず本記事のPythonでのExcel操作をマスターできるようにします。

 

これは、次のツイートでも話題になっていて、ある程度、客観的にも有用性があります

 

step
3
Pythonでデータを可視化し分析する!!

ここでようやく肝となるデータ分析に取り組みます。併せて、統計学や数学も学ぶのが良いです。

kaggleやsignateのコンペに参加するのもアリです。

ステップ3までくれば、もう自らの意志でデータサイエンティストを目指す行動が分かってきます。

ぜひ、ステップ3までをなんとか上り詰めましょう〜

 

 

以上となります。

最後まで読んで頂き、ありがとうございました。

 

よく読まれている記事

se-shikaku 1

  社内SEになるには資格って必要?社内SEでキャリアップするときにおすすめの資格は? 回答としては、 社内SEは、対人スキル、実務での対応力や最新情 ...

社内SEの仕事内容 2

  社内SEってどんな仕事なんだろ~ 検索しても転職サイトの記事ばかりでよく分からない・・   確かにそうですね。。実経験を基に、社内SE( ...

side-work-trial 3

  コロナで会社の経営も不安。。個人でお金稼ぎたいな~ 今、こう考えるサラリーマン、OLの方はごまんといると思います。   僕は、本業では社 ...

adsense-pass 4

【3記事で一発合格】Google AdSense申請に合格したブログ情報 こんにちは、いなサラ(@いなサラ|田舎の情シスサラリーマン)です。 2019年10月5 ...

-Python × Excel

© 2020 inasala note