非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】Pandasのlocを使って条件に基づいて値を代入する方法

   

DataFrameの特定の条件を満たす行に対して、特定の列に値を代入したい場面はよくあります。この記事では、pandasのlocプロパティを使って、このような条件に基づいた値の代入を効率的に行う方法について解説します。具体例として「絶対値が10以上の場合に、列「B」に1を代入する」を取り上げて解説します。

import pandas as pd
import numpy as np

# サンプルDataFrameの作成
data = {'A': [15, -8, 12, -20, 5, 10],
        'B': ['x', 'y', 'z', 'a', 'b', 'c']}
df = pd.DataFrame(data)

print("変更前のDataFrame:")
print(df)

# 'A'列の絶対値が10以上の場合に、'B'列に1を代入
df.loc[np.abs(df['A']) >= 10, 'B'] = 1 
# 'A'列の絶対値が10以上の行を選択し、それらの行の'B'列に1を代入します

print("\n変更後のDataFrame:")
print(df)
 

 

pandasのlocを使った条件に基づいた値の代入は、データ処理において非常に強力な機能です。今回の例のように、数値の絶対値に基づいて条件を設定するだけでなく、文字列の一致、日付の範囲など、さまざまな条件を組み合わせて柔軟なデータ操作が可能です。

 

スポンサーリンク

 - Python