apply
和自定义函数:df['Number2'] = df['Number'].apply(lambda x: ''.join(sorted([num for num in str(x)])))
print(df)
Number Number2
0 123 123
1 321 123
2 456 456
3 654 456
分解:
# Step 1: break the cells into a list of values
>>> df['Number'].apply(lambda x: [num for num in str(x)])
0 [1, 2, 3]
1 [3, 2, 1]
2 [4, 5, 6]
3 [6, 5, 4]
# Step 2: sort the values within a list
>>> df['Number'].apply(lambda x: sorted([num for num in str(x)]))
0 [1, 2, 3]
1 [1, 2, 3]
2 [4, 5, 6]
3 [4, 5, 6]
# Step 3: join the sorted values and convert to int (if necessary)
>>> df['Number'].apply(lambda x: ''.join(sorted([num for num in str(x)]))).astype(int)
0 123
1 123
2 456
3 456
Name: Number, dtype: int32
df['Number2'] = df['Number'].astype(str).apply(sorted).str.join('')
print(df)
Number Number2
0 123 123
1 321 123
2 456 456
3 654 456