Используйте numpy.sort
для сортировки по всем строкам:
cols = ['C1','C2','C3','C4']
df[cols] = np.sort(df[cols], axis=1)
print (df)
X C1 C2 C3 C4 Y Z
0 A 11 12 13 15 A1 A2
1 B 21 22 23 25 B1 B2
2 C 31 32 33 35 C1 C2
Если возможно, сортируйте по индексу 0
:
cols = ['C1','C2','C3','C4']
df[cols] = df[cols].sort_values(0, axis=1)
#thanks @pygo for another solution
df[cols].sort_values(0, axis=1, inplace=True)
print (df)
X C1 C2 C3 C4 Y Z
0 A 11 12 13 15 A1 A2
1 B 21 22 23 25 B1 B2
2 C 31 32 33 35 C1 C2
Разница между решениямис измененным входным фреймом данных:
print (df)
X C1 C2 C3 C4 Y Z
0 A 11 15 12 13 A1 A2
1 B 2 1 5 4 B1 B2
2 C 31 35 32 33 C1 C2
cols = ['C1','C2','C3','C4']
df[cols] = np.sort(df[cols], axis=1)
print (df)
X C1 C2 C3 C4 Y Z
0 A 11 12 13 15 A1 A2
1 B 1 2 4 5 B1 B2
2 C 31 32 33 35 C1 C2
cols = ['C1','C2','C3','C4']
df[cols] = df[cols].sort_values(0, axis=1)
print (df)
X C1 C2 C3 C4 Y Z
0 A 11 12 13 15 A1 A2
1 B 2 5 4 1 B1 B2
2 C 31 32 33 35 C1 C2