Python × Excel

PythonでExcelのMID、LEFT、RIGHT関数の操作を行う方法

2020-10-17

python-excel-mid

本記事では、PythonでExcel のMID、LEFT、RIGHT関数の操作を行う方法をご紹介します。

Pythonの実行環境

今回は、以下の実行環境でプログラムを実行しています。

・Python 3.7.6
・Jupyterlab 1.2.6
・Pandas:1.1.2

テストデータは、次のような予算管理表を使います。

ファイル名は「テストデータ.xlsx」で、シート名は「予算管理表」です。

■予算管理表

テストデータ

 

本記事で、今回利用するライブラリはPandasです。

import pandas as pd

※本記事では、Pythonのコードの下のコメントアウトは、出力結果を示しています。

 

PythonでExcelのMID、LEFT、RIGHT関数の操作を行う方法

Excelで文字列を分解するときにMID、LEFT、RIGHT関数を使います。

例えば、Excelで「費目1」列を番号と和名に分けたい時は、こんな感じでやっているでしょう。

left関数

mid関数

 

まずはテストデータを読み込み、予算管理表をdfとします。

df = pd.read_excel('テストデータ.xlsx', sheet_name = '予算管理表')

そして、Excelと同様に「費目番号」列と、「費目名」列を追加します。

このとき、str[]を使って対象の列の文字列をスライスして抽出します。

「費目番号」列は、最初から1字目までを

「費目名」列は、2字目から最後までを

Pythonのコードでは次のように書けます。

df['費目番号'] = df['費目1'].str[:1]
df['費目名'] = df['費目1'].str[2:]

実際の結果は、次の通り、「費目番号」列と「費目名」列が追加されていることが分かります。

mid結果

Pythonで必ず一番最後の列から追加になります。

Pythonでデータを扱う際は、列の並びはそこまで気にする必要がありません。

このように、str[]を使ってスライスで切り取る位置を指定すれば、ExcelのMID、LEFT、RIGHT関数の操作が簡単にできるのです。

 

【応用】PythonでExcelのMID、LEFT、RIGHT関数の操作を行う方法

上で紹介したPythonの書き方は、シンプルで簡単ですが、他にも応用的な書き方があります。

次のように、apply関数とlambda関数を組み合わせた書き方です。

※apply関数とlambda関数の使い方は、他のネット記事に分かりやすいものがたくさんありますので、そちらを参照ください。

df['費目番号'] = df['費目1'].apply(lambda x: str(x)[0:1])
df['費目名'] = df['費目1'].apply(lambda x: str(x)[2:])

 

結果は、上と同じになります。

どうして敢えて難しく書くのか?って思いますよね。

それは、文字列の操作を拡張するためです。

本記事の例では、文字列をある部分を取り出す(スライス)するだけですが、apply関数とlambda関数を使うことで、文字列の結合、条件に応じた加工、数値の計算などができるのです。

lambda関数の中身を変更すれば、ある程度自由に自分のやりたい処理が実現できると思います。

ぜひぜひapply関数とlambda関数のこの書き方(型)だけでも覚えておけば損はありません。

 

以上、PythonでExcelのMID、LEFT、RIGHT関数の操作を行う方法を応用的な書き方も含めて説明してきました。

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

よく読まれている記事

insta-auto-post 1

  インスタって自動で投稿できないのかな。いつもスマホで投稿するの大変だし・・ Pythonを使えば、インスタで自動で投稿できるよ!!特別に紹介するね ...

python-consult_1 2

  AI・機械学習、データサイエンティスト、、やっぱりこれからの時代Pythonは勉強すべきだよね!   その通り。Pythonは今後も伸び ...

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

  Excelで作業するのって大変だな〜 なにか楽な方法ないかな〜   Excelの集計や単純作業は、Pythonで楽にできるよ!!この一覧 ...

python-works 4

ここでは、サイト管理者のいなサラがこれまでPythonで作ったものをご紹介します。 以下のリンクで、実際の作り方やソースコードを公開しているので、ぜひ参考にして ...

-Python × Excel

© 2021 inasala note