読者の今回は、Python Dataframeの行の値を更新する様々な方法に焦点を当てて、詳しく説明します。
では、さっそく始めましょう
まず、行と列はどこに存在するのでしょうか?
プログラミング言語Pythonでは、Pandasというモジュールがあり、データフレームと呼ばれるデータ構造を提供しています。
データフレームは、行と列の形でデータを格納します。
データフレームは行と列の形でデータを格納するため、行列とみなすことができ、データを分析する際に便利です。
さっそくデータフレームを作成してみましょう。
import pandas as pd
info= {"Num":[12,14,13,12,14,13,15], "NAME":['John','Camili','Rheana','Joseph','Amanti','Alexa','Siri']}
data = pd.DataFrame(info)
print("Original Data frame:)
print(data)
|
ここでは、pandas.DataFrame()関数を用いてデータフレームを作成しました。
出力してみましょう。
Original Data frame: Num NAME
0 12 John
1 14 Camili
2 13 Rheana
3 12 Joseph
4 14 Amanti
5 13 Alexa
6 15 Siri
|
上記で作成したデータフレームを記事全体で使用し、例題に関して参考にします。
1. Python at()メソッドで行の値を更新する
Pythonのat()メソッドを使うと、ある列に対して一度に1行の値を更新することができます。
構文は以下の通りです。
dataframe.at[index,'column-name']='new value'
|
例えば、以下の様になります。
この例では、データフレームのインデックス6と列’NAME’をat()関数に与えています。
したがって、行インデックス 6 の列 ‘NAME’ の値が更新されます。
data.at[6,'NAME']='Safa'
|
結果は以下の通りです。
Num NAME0 12 John
1 14 Camili
2 13 Rheana
3 12 Joseph
4 14 Amanti
5 13 Alexa
6 15 Safa
|
2. Python loc() 関数で行/列の値を変更する
Python の loc() メソッドは、列のラベルと行のインデックスを提供することで、列に対する行の値を更新するために使用することも可能です。
構文は以下の通りです。
dataframe.loc[row index,['column-names']] = value
|
例えば、以下の様になります。
data.loc[0:2,['Num','NAME']] = [100,'Python']
|
ここでは、インデックス 0 から 2 までの行の値を、それぞれ列 ‘Num’ と ‘NAME’ に関して更新しています。
結果は以下の通りです。
Num NAME0 100 Python
1 100 Python
2 100 Python
3 12 Joseph
4 14 Amanti
5 13 Alexa
6 15 Siri
|
3. Python replace()メソッドでデータフレーム内の値を更新する
Python replace() メソッドを使うと、データフレーム内の任意の文字列の値を更新したり変更したりすることができます。
インデックスやラベルの値を指定する必要はありません。
構文は以下の通りです。
dataframe.replace("old string", "new string")
|
例えば、以下の様になります。
data.replace("Siri",
"Code",
inplace=True)
|
上記のように、データフレーム内の “Siri “という単語を “Code “に置き換えています。
結果は以下の通りです。
Num NAME0 12 John
1 14 Camili
2 13 Rheana
3 12 Joseph
4 14 Amanti
5 13 Alexa
6 15 Code
|
この記事もチェック:PythonでPandasデータフレームの列の順序を変更する4つの方法
4. iloc() メソッドによる行の値の更新
Pythonのiloc()メソッドを使うと、行や列のインデックス値を指定して、その値を変更したり更新したりすることができます。
構文は以下の通りです。
dataframe.iloc[index] = value
|
例えば、以下の様になります。
data.iloc[[0,1,3,6],[0]] = 100
|
この例では、0, 1, 3, 6 行目の値を、最初の列である ‘Num’ の値を 100 に更新しています。
iloc() 関数を使って、複数の行の値を結果的に変更するために、行をスライスした関数を提供することもできます。
結果は以下の通りです。
Num NAME0 100 John
1 100 Camili
2 13 Rheana
3 100 Joseph
4 14 Amanti
5 13 Alexa
6 100 Siri
|
この記事もチェック:Pandasのilocメソッドの使い方|列の抽出や複数列の扱い方を解説
まとめ
ここまでで、このトピックは終了です。
もし何か疑問があれば、お気軽にコメントください。
Pythonに関連するこのような投稿をもっと見るには、お楽しみに!それまでは、Happy Learning!