実現したいこと
下図のようにじゃんけん列でチョキが発生した際に連番を代入し、
それ以外はnanにしたいと思いコードを作成したのですが、エラーが発生
しました。
理想列が実現したい内容になります。
アドバイスいただけませんでしょうか
発生している問題・エラーメッセージ
エラーメッセージ
ValueError: Transform function failed
該当のソースコード
import numpy as np import pandas as pd df = pd.DataFrame({'NO': [1,2,3,4,5,6,7,8,9], 'じゃんけん': ["グー","チョキ","チョキ","パー","パー","チョキ","パー","グー","グー"], '理想': [np.nan,1,1,np.nan,np.nan,2,np.nan,np.nan,np.nan]} ) df["test"] = df['じゃんけん'].transform(lambda x: np.nan if x=='チョキ' else ((x!=x.shift(1)) & (x=='チョキ')).cumsum()
試したこと
①と②を実行した時にはエラーが出ないのは確認しました。
① df["連続"] = df['じゃんけん'].transform(lambda x: ((x!=x.shift(1)) & (x=='チョキ')).cumsum())
② df["連続"] = df['じゃんけん'].transform(lambda x: np.nan if x=='チョキ' else 1)
名前列を追加したい場合
名前が変わるとリセットしたい
import numpy as np import pandas as pd df = pd.DataFrame({'NO': [1,2,3,4,5,6,7,8,9], '名前': ["A","A","A","A","B","B","B","B","B"], 'じゃんけん': ["チョキ","グー","チョキ","チョキ","チョキ","グー","チョキ","チョキ","グー"], '理想': [1,np.nan,2,2,1,np.nan,2,2,np.nan]} ) print(df)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/24 00:06
2022/12/24 00:41
2022/12/24 01:55 編集