PandasのDataframeの行を更新する方法を4つ解説する

スポンサーリンク

読者の今回は、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    NAME
0   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    NAME
0  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    NAME
0   12    John
1   14  Camili
2   13  Rheana
3   12  Joseph
4   14  Amanti
5   13   Alexa
6   15    Code

4. iloc() メソッドによる行の値の更新

Pythonのiloc()メソッドを使うと、行や列のインデックス値を指定して、その値を変更したり更新したりすることができます

構文は以下の通りです。

dataframe.iloc[index] = value

例えば、以下の様になります。

data.iloc[[0,1,3,6],[0]] = 100

この例では、0, 1, 3, 6 行目の値を、最初の列である ‘Num’ の値を 100 に更新しています。

iloc() 関数を使って、複数の行の値を結果的に変更するために、行をスライスした関数を提供することもできます。

結果は以下の通りです。

Num    NAME
0  100    John
1  100  Camili
2   13  Rheana
3  100  Joseph
4   14  Amanti
5   13   Alexa
6  100    Siri

まとめ

ここまでで、このトピックは終了です。

もし何か疑問があれば、お気軽にコメントください。

Pythonに関連するこのような投稿をもっと見るには、お楽しみに!それまでは、Happy Learning!

タイトルとURLをコピーしました