Pandas 组排序中的多索引序列
我有一个多索引系列Pandas 组排序中的多索引序列,pandas,Pandas,我有一个多索引系列 Low A 0.888889 B 0.361111 Open B 0.000000 C 1.000000 是否有方法在每个组内对上述内容进行排序(低、开放) 如果我调用.sort\u values()它会对整个系列进行排序,这不是我想要的。我想保留它的分组 我还试着在每个组上循环并排序和重新分配,但这是不正确的,因为值是按标签排序的(ABC)不是,所以完全混淆了 谢
Low A 0.888889
B 0.361111
Open B 0.000000
C 1.000000
是否有方法在每个组内对上述内容进行排序(低、开放)
如果我调用.sort\u values()
它会对整个系列进行排序,这不是我想要的。我想保留它的分组
我还试着在每个组上循环并排序和重新分配,但这是不正确的,因为值是按标签排序的(ABC)不是,所以完全混淆了
谢谢如果没有级别名称,请先使用,然后使用,对于正确的排序顺序,请使用索引:
s = (s.rename_axis(['id1','id2'])
.groupby('id1', group_keys=False, sort=False)
.apply(pd.Series.sort_values)))
print (s)
id1 id2
Low B 0.361111
A 0.888889
Open B 0.000000
C 1.000000
Name: val, dtype: float64
您能否共享生成数据的代码?只有2个值
Low
和Open
?创建数据的原始函数大约有200行长。上面的代码就像一个小片段。我记得有一个方法调用输出代码,所以当它运行时,它会产生相同的数据帧…但是忘记了它被调用了什么。向他人发送代码的好方法。。。你们知道吗?看起来你们使用的逻辑和我的一样:-)不错~@BEN_-YO-是的,这很有趣transform
不改变索引。有点有线,看起来transform在改变数组,而不是熊猫object@BEN_YO-是的,这很有道理