可以使用transform
函数来实现不改变索引排序的情况下对分组的DataFrame列进行排序。
下面是一个示例代码:
import pandas as pd
# 创建示例DataFrame
data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
'Value': [2, 1, 3, 6, 5, 4]}
df = pd.DataFrame(data)
# 定义排序函数
def sort_group(group):
group['Sorted_Value'] = group['Value'].sort_values()
return group
# 对分组的DataFrame列进行排序
df['Sorted_Value'] = df.groupby('Group').transform(sort_group)['Sorted_Value']
print(df)
输出结果:
Group Value Sorted_Value
0 A 2 1
1 A 1 2
2 B 3 6
3 B 6 3
4 C 5 4
5 C 4 5
在这个示例中,我们首先定义了一个排序函数sort_group
,它会对每个分组进行排序,并将排序后的结果赋值给新的列Sorted_Value
。然后,我们使用transform
函数将排序函数应用到每个分组的DataFrame上,并将排序后的结果赋值给原始DataFrame的Sorted_Value
列。这样可以在不改变索引排序的情况下对分组的DataFrame列进行排序。