Q&A
前提・実現したいこと
データフレームに入っている値がある条件に一致した場合はそのままで、不一致の場合には内容を上書きしたいと思っています。
例えば、
A. B
https://aaaaa/aaaaa /a/abc/ddd
https://bbbb/bbbbb https://bbbb/bbbbb/abc
https://cccc/ccccc https://cccc/ccccc/abc
というデータがあった場合、B列に「https://」が含まれている行はそのままで、「https://」が含まれていない行は同じ行の「A列+B列」として、B列に上書きをしたいと考えています。
理想としては、以下のような形になります。
A. B
https://aaaaa/aaaaa https://aaaaa/aaaaa/a/abc/ddd (この列だけ上書き)
https://bbbb/bbbbb https://bbbb/bbbbb/abc (B列はそのまま)
https://cccc/ccccc https://cccc/ccccc/abc (B列はそのまま)
for文とif文を組み合わせて実装すればいいと考えたのですが、発生している問題のような結果になってしまいます。
発生している問題・エラーメッセージ
エラーメッセージはないのですが、以下のような状況になっています。 A B https://aaaaa/aaaaa https://cccc/ccccc/a/abc/ddd https://bbbb/bbbbb https://cccc/ccccchttps://bbbb/bbbbb/abc https://cccc/ccccc https://cccc/ccccchttps://cccc/ccccc/abc
該当のソースコード
Python
1base_url=df['A'] 2for q in range(len(df)): 3 if base_url in df.loc[q,'B']: 4 df.loc[q,'B'] = df.loc[q,'B'] 5 else: 6 base_url != df.loc[q,'B'] 7 df.loc[q,'B']=base_url + df.loc[q,'B']
補足情報(FW/ツールのバージョンなど)
M1 Mac mini miniforge3使用しています。
ご教授・ご指導いただけましたら幸いです。
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/10/03 12:41
2022/10/03 12:44