Pandas DataFrame DataFrame.replace() 関数

Suraj Joshi 2023年1月30日
  1. pandas.DataFrame.replace() の構文
  2. コード例:pandas.DataFrame.replace() を用いてデータフレーム内の値を置換する
  3. コード例:pandas.DataFrame.replace() を用いた複数の値の置換
Pandas DataFrame DataFrame.replace() 関数

pandas.DataFrame.replace() は DataFrame の値を他の値で置き換えます。

pandas.DataFrame.replace() の構文

DataFrame.replace(,
                  to_replace=None,
                  value=None,
                  inplace=False,
                  limit=None,
                  regex=False,
                  method='pad')

パラメータ

to_replace 文字列、正規表現、リスト、辞書、直列、数値、または None。置換が必要な DataFrame の値
value スカラ、dict、リスト、文字列、正規表現、または None。to_replace にマッチする値を
inplace 論理値。True の場合、呼び出し元の DataFrame を修正します。
limit 整数。前方または後方に埋める最大サイズのギャップ
regex 論理値です。to_replace および/または value が正規表現の場合、regexTrue に設定します。
method 置き換えに使用した方法

リターン

これは指定されたすべてのフィールドを指定された value に置き換えた DataFrame を返します。

コード例:pandas.DataFrame.replace() を用いてデータフレーム内の値を置換する

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Before Replacement")
print(df)  
replaced_df=df.replace(1, 5)
print("After Replacement")
print(replaced_df)

出力:

Before Replacement
   X  Y
0  1  4
1  2  1
2  3  8
After Replacement
   X  Y
0  5  4
1  2  5
2  3  8

ここで、1to_replace パラメータ、5replace() メソッドの value パラメータを表します。したがって、df の中の値 1 を持つすべてのエントリは 5 で置換されます。

コード例:pandas.DataFrame.replace() を用いた複数の値の置換

リストを使った置き換え

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Before Replacement")
print(df)  
replaced_df=df.replace([1,2,3],[1,4,9])
print("After Replacement")
print(replaced_df)

出力:

Before Replacement
   X  Y
0  1  4
1  2  1
2  3  8
After Replacement
   X  Y
0  1  4
1  4  1
2  9  8

ここで、[1,2,3]to_replace パラメータ、replace() メソッドの value パラメータを表します。したがって、df のカラム [1,2,3][1,4,9] に置き換えられます。

辞書を使用して置き換える

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [3, 1, 8]})
print("Before Replacement")
print(df)  
replaced_df=df.replace({1:10,3:30})
print("After Replacement")
print(replaced_df)

出力:

Before Replacement
   X  Y
0  1  3
1  2  1
2  3  8
After Replacement
    X   Y
0  10  30
1   2  10
2  30   8

1 の要素を 10 で置換し、値 3 の要素を 30 で置換します。

置換には Regex を用いる

import pandas as pd
df = pd.DataFrame({'X': ["zeppy", "amid", "amily"],
                   'Y': ["xar", "abc", "among"]})
print("Before Replacement")
print(df)  
df.replace(to_replace=r'^ami.$', value='song', regex=True,inplace=True)
print("After Replacement")
print(df)

出力:

Before Replacement
       X      Y
0  zeppy    xar
1   amid    abc
2  amily  among
After Replacement
       X      Y
0  zeppy    xar
1   song    abc
2  amily  among

これは、最初の 3 文字を ami に、それに続く要素を song に置き換えます。ここでは、与えられた正規表現を満たすのは amid だけなので、amid だけが song に置き換えられます。また、family も最初の 3 文字は ami ですが、ami の後には 2 文字あります。つまり、amily は正規表現を満たしていないので、ami はそのままで置換されていません。正規表現を使用する場合は、regexTrue に設定されていることと、inplace=Truereplace() メソッドを呼び出した後に元の DataFrame を変更することを確認してください。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Pandas DataFrame