Python × Excel

PythonでExcelの置換操作や条件分岐ありの置換を行う方法

本記事では、PythonでExcel の置換操作、条件分岐ありの置換操作を行う方法をご紹介します。

Pythonの実行環境

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

・Python 3.7.6
・Jupyterlab 1.2.6
・Pandas:1.1.2

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

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

■予算管理表

テストデータ

 

本記事で、利用するライブラリはPandasです。
そして、テストデータの予算管理表をdfとして読み込んでおきます。

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

 

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

 

PythonでExcelの置換の操作を行う方法(完全一致の置換)

Excelの場合は、ctrl + H (command + H)で、よく置換って使いますよね。

Pythonではどのようにやるのかをご紹介します。

まずは、置換元の文字列を完全一致でしていして置換する方法です。

テストデータの例だと、「費目1」列の '1-消耗品費' を '5-消耗品費' とするように全文字列を指定する方法です。

df = df.replace('1-消耗品費', '5-消耗品費')

これは、replace()を使い、1つ目の引数に置換前の文字列、2つ目に置換後の文字列を指定します。

ご覧の通り、消耗品の番号が1から5に変更されました。

置換1

 

この場合だと、表全体が置換対象となって、置換されます。

もし、置換対象を特定の列に絞りたい時は、次のように書きます。

 

df['費目1'] = df['費目1'].replace('1-消耗品費', '5-消耗品費')

これによって、「費目1」列のみが置換対象となります。

今回の場合は、'1-消耗品費' という文字列が「費目1」列にしかないため、上の結果と同じになります。

 

PythonでExcelの置換の操作を行う方法(部分一致の置換)

次は、文字列の中で部分的にある文字列に該当するものを別の文字列に置き換える方法をご紹介します。

例として、「件名」列の '販売システムの構築' の中の '販売システム' を'販売管理システム' に置き換えるのをみていきます。

これは、apply関数とLambda関数を組み合わせて、replace() を使います。

df['件名'] = df['件名'].apply(lambda x: x.replace('販売システム', '販売管理システム'))

 

結果は、次のとおりになり、文字列が置き換わっていることが分かります。

置換2

 

Pythonで条件分岐ありの置換を行う方法

最後に、条件分岐ありの置換を行う方法をご紹介します。

条件分岐ありの置換とは、テストデータの「2021年度」列で、金額が0以外の値を1に置換するというものです。

条件分岐:金額が0以外 → 1 に置換する

といった感じです。

金額が0から1以上かでフラグ的な意味合いになります。

 

これは、それほど頻繁には使わないかもしれませんが、頭の片隅に覚えておいて損はないと思います。

Pythonでは、where()を使います。

df['2021年度'] = df['2021年度'].where(df['2021年度']==0, 1)

whereの1つ目の引数に条件式、2つ目に条件式がFalseの時の置換後の値をいれます。

2つ目は、条件がFalseの場合の値ということが、間違えやすいのでぜひ注意しましょう。

結果は、次の通りとなります。条件にしたがって、ちゃんと置換されています。

置換3

 

以上、PythonでExcelの置換操作や条件分岐ありの置換の方法を説明してきました。

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

よく読まれている記事

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