以下のデータフレームに対して、addFlag列がyesの行に対してのみ'forAdd`列の値を
x,y列に加算したいのですがうまく行きません。
下記のようにトライして見たのですが、どこを修正すれば良いかご教示いただけないでしょうか。
python
1import pandas as pd 2 3df = pd.DataFrame({'x': [1, 2, 3, 4, 5], 4 'y': [6, 7, 8, 9, 10], 5 'addFlag': ['yes', 'no', 'yes', 'no', 'yes'], 6 'forAdd':[100,100,100,100,100] 7 }) 8 9condition = df['addFlag'].str.contains('yes') 10df.loc[condition,['x','y']] += df.loc[condition,'forAdd'] 11 12df
python
1#実行前のdataframe 2 x y addFlag forAdd 30 1 6 yes 100 41 2 7 no 100 52 3 8 yes 100 63 4 9 no 100 74 5 10 yes 100 8 9 10#実行結果 11 x y addFlag forAdd 120 NaN NaN yes 100 131 2.0 7.0 no 100 142 NaN NaN yes 100 153 4.0 9.0 no 100 164 NaN NaN yes 100
達成したいこと:NaNの部分は100が足された値になってほしい
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/22 23:21