, @coldspeed i.e
dummies = pd.get_dummies(df.astype(str)).groupby(by=lambda x: x.split('_')[1], axis=1).sum()
df['new'] = dummies.idxmax(1)
a b c new
0 1 1 2 1
1 3 3 3 3
2 1 3 3 3
3 4 5 4 4
3 4 5 5 5
:
, , pd.get_dummies
, get_dummies , .
pd.get_dummies(df.astype(str))
a_1 a_3 a_4 b_1 b_3 b_5 c_2 c_3 c_4 c_5
0 1 0 0 1 0 0 1 0 0 0
1 0 1 0 0 1 0 0 1 0 0
2 1 0 0 0 1 0 0 1 0 0
3 0 0 1 0 0 1 0 0 1 0
3 0 0 1 0 0 1 0 0 0 1
, , . iee
1 2 3 4 5
0 2 1 0 0 0
1 0 0 3 0 0
2 1 0 2 0 0
3 0 0 0 2 1
3 0 0 0 1 2
idxmax(axis=1)
, , .
0 1
1 3
2 3
3 4
3 5
dtype: object
:
, get_dummies
, -, , scipy mode
pandas mode