pandas 値の更新

実現したいこと

pandasのデータデータフレームの値の更新を教えて頂きたいのですが、
列3+id列=実現したい内容になるよう列3を更新したい場合
どのようにしたらいいでしょうか

イメージ説明

該当のソースコード

import pandas as pd import numpy as np df1 = pd.DataFrame( data={'列1': [1, 2, 3,4,5,6,7,8,9,10,11,12,13,14,15], '列2': [1, 1, 1,1,1,1,1,1,1,1,2,2,2,2,2], '列3': [np.nan, np.nan, 1, 1,np.nan, np.nan,2,2,2,np.nan, 3,np.nan,4,4,np.nan], '実現したい内容': [np.nan, np.nan, 1, 1,1, np.nan,2,2,2,2, 3,3,4,4,4] }) df1['id'] = df1.groupby('列2',group_keys=False)['列3'].apply(lambda x: x.shift().where((x!=x.shift())))

試したこと

df1.loc[df1["列3"]!=df1["列3"].shift(-1), ["列3"]]=df1["列3"].shift()

上記コードを作成したのですが、10行目がうまくいかず、また
グループ化できていない状態なのでダメでした。
イメージ説明

コメントを投稿

0 コメント