2
私は値に基づいてマージしようとしているデータがあります。時間の経過とともに、命名規則が変更され、同じデータをキャプチャする2つのカラムにつながるカラム名に「0」が追加されました。例:?私はどちらか(あるいは両方)が1に等しい場合、結果は1になり、両方の場合にのみ、両方が0だった、結果は0になるような方法でこれらの列を結合する方法を値に基づいて2つのパンダの列を結合する
df4 = pd.DataFrame({'MSG235': [1,0,1,0,0], 'MSG0235': [0,0,0,1,1]})
df4
MSG0235 MSG235
0 1
0 0
0 1
1 0
1 0
私はこのような何かを探しています:私が試した
MSG235
1
0
1
1
1
:
df4.rename(columns = {'MSG0235': 'MSG235'}, inplace = True)
def col_join(x):
return ''.join(x[x.notnull()].astype(str))
df4.groupby(level = 0, axis = 1).apply(lambda x: x.apply(col_join, axis = 1))
になり:
はMSG235
01
00
01
10
10
'df4.any(1).astype(int)'も動作するはずです。または、dataframeを取得してください。 'df4.any(1).astype(int).to_frame(name = 'MSG235')' –
@Vaishali私は2つ以上のカラムを持っていません。これは素晴らしいです:)私が行った唯一の変更は 'df4 ['MSG235'] =(df4 [['MSG0235'、 'MSG235']]。any(1)== 1).astype(int)'でした。私は '.any(1)'を特定の列に限定することができました。助けてくれてありがとう! –