0
で複数の列に異なる条件での値を置き換えます私はこのようなデータフレームに何かを持っていますが、はるかに大きいパンダ
source next1 next2 next3
b1 {-} b2 -,b2,b3
b2,b3 - {b2,b3} {b2,b3,b4}
今、私はここに文字の多くを交換する必要があります。次のすべての列には、前の値を含める必要があります。値が - 、または、以前のことを意味する{ - }の場合は、それも何もない場合は、前にする必要があります。 所望の出力:私はこのような何かを試してみました
source next1 next2 next3
b1 b1 b2 b1,b2,b3
b2,b3 b2,b3 b2,bb3 b2,b3,b4
:
for val in df['source'].values:
if values=b1:
df['next1'].replace('{-},', 'b1,',regex=True, inplace=True)
df['next1'].replace('-,', 'b1,',regex=True, inplace=True)
など しかし、私はそんなに行、およびcondiditonsを持っているので、これは長い間に動作していないところ正確な、エラーがあります。すべての行に1つの値を置き換えます。
この部分をありがとうございます。ある列から別の列に(+)文字列値を追加する方法はありますか?例えば、加算後:b1、b2、b1、b3。どのようにb1、b2、b3を値として維持するか? – jovicbg
私はそれが だと思います1)いくつかのコードで可能です 2)本当に恐ろしい考えです。なぜ、セットで作業するのではなく、最後に文字列に変換するのではなく、文字列の形で 'sets'を再作成しようとしていますか? 私はあなたのデータを取得する場所に戻って、代わりにセットを取得したり、文字列をパースしてセットにする方法を見つけるべきだと思います。その後、あなたの問題は、上記のループで2つのセットを追加すること(そして '-'を削除すること)に沸きます。 構文解析のアプローチは、 'set(el.replace(" { - } "、 ' - ')。replace( '{'、 '').replace( '}'、 '').split '、')) ' –