您可以
transform用来取回新的所需索引顺序,然后用于
reindex重新排列Dataframe:
# Use transform to return the new ordered index values.new_idx = df.groupby('A')['B'].transform(lambda grp: grp.sort_values().index)# Reindex.df = df.reindex(new_idx.rename(None))
如果需要,可以将上面的两行合并为一条长行。
结果输出:
A B5 X 34 X 47 Y 16 Y 21 X 70 X 83 Y 52 Y 6
请注意,如果您不关心维护旧索引,则可以直接从中重新分配
transform:
df['B'] = df.groupby('A')['B'].transform(lambda grp: grp.sort_values())
产生:
A B0 X 31 X 42 Y 13 Y 24 X 75 X 86 Y 57 Y 6
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)