Pandas DataFrame DataFrame.replace() 関数
Suraj Joshi
2023年1月30日
-
pandas.DataFrame.replace()
の構文 -
コード例:
pandas.DataFrame.replace()
を用いてデータフレーム内の値を置換する -
コード例:
pandas.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 が正規表現の場合、regex を True に設定します。 |
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
ここで、1
は to_replace
パラメータ、5
は replace()
メソッドの 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
はそのままで置換されていません。正規表現を使用する場合は、regex
が True
に設定されていることと、inplace=True
が replace()
メソッドを呼び出した後に元の DataFrame
を変更することを確認してください。
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn