下記元データ(dfとdf1)を結合して、番号を元に2番目以降は
df1の文字+dfの文字を結合してdfの3列目の答えのように文字列を結合して出したいが、
試行錯誤でコードを作成して徐々に近くなってきたが、3列目の答えのような結果が
出ないのでアドバイスを頂きたい
元データ
実現したいこと
実現したいのは3列目の答えと同じ結果を出したい
df1にはdfの番号の最後の文字列が入っているようになっているのですが、
dfの2番だとdf1 1番の文字+dfの文字
dfの3番だとdf1 1番+2番の文字列+dfの文字
ここにはないですが、df4番だと df1の1番+2番+3番の文字列+dfの文字列を
反映させたいです。
該当のソースコード
import pandas as pd df = pd.DataFrame(data={ '番号': ['1','1','1','2','2','2','3','3','3','3','3'], '文字': ['あ','あい','あいう','か','かき','かきく','さ','さし','さしす','さしすせそ','さしすせ'], '答え': ['あ','あい','あいう','あいうか','あいうかき','あいうかきく','あいうかきくさ','あいうかきくさし','あいうかきくさしす','あいうかきくさしすせそ','あいうかきくさしすせ']}) df1 = pd.DataFrame(data={'番号': ['1','2','3'],'文字': ['あいう','かきく','さしす']}) str="" for index, row in df.iterrows(): for index1, row1 in df1.iterrows(): if row['番号']>row1['番号']: if df.at[index, '番号']!=df.at[index-1,'番号']: str=str+row1['文字'] else: str=str df.at[index, '確認']= str + row['文字']
回答2件
あなたの回答
tips
プレビュー