我有一个这样的数据框df
:
a b
id no name
T01 101 foo 1 $10
T32 102 bar 2 $30
T10 103 baz 4 $25
其中索引是id, no and name
。我有另一个数据帧df2
,其索引顺序与我希望的相同
我需要数据帧
a b
id no name
T10 103 baz 4 $25
T01 101 foo 1 $10
T32 102 bar 2 $30
我见过使用df.loc[df2.no.values]
和df.reindex(df2.no)
,但由于我有多索引的数据帧,它似乎不起作用
我应该用什么来按df2
的顺序对键no
中的df
排序?在
解决方案
说明
unstack([0, 2])
将第一级和第三级索引放入[-2,-1]级的列中。这将隔离您关心的级别。在ix[df2.no]
按您喜欢的顺序排列剩余的级别。在stack([1, 2])
从列中获取级别并将它们放回索引中。在swaplevel(0, 1)
将索引级别恢复为原始顺序。在一个可能的解决方案是^{} 、^{} 和最后一个^{} :
如果级别顺序不重要:
^{pr2}$计时:
相关问题 更多 >
编程相关推荐