我有一个如下格式的pandas数据框:
它是由这段代码生成的:
我想要分别按照第一索引级别中的每个组,按照列
为什么第一级重复?在每个组内部有更好的排序数据的方法吗?
C1 C2
A 0 1.764052 0.400157
1 0.978738 2.240893
2 1.867558 -0.977278
3 0.950088 -0.151357
4 -0.103219 0.410599
C 0 0.144044 1.454274
1 0.761038 0.121675
2 0.443863 0.333674
3 1.494079 -0.205158
4 0.313068 -0.854096
它是由这段代码生成的:
import pandas as pd
import numpy as np
idx = pd.MultiIndex.from_product([['A','C'],range(5)])
np.random.seed(0)
df = pd.DataFrame(index=idx, data = np.random.randn(len(idx), 2), columns=['C1','C2'])
我想要分别按照第一索引级别中的每个组,按照列
C1
进行排序,因此我使用了 groupby
函数:
df.groupby(level=0).apply(lambda x: x.sort_values('C1'))
然后我得到了结果: C1 C2
A A 4 -0.103219 0.410599
3 0.950088 -0.151357
1 0.978738 2.240893
0 1.764052 0.400157
2 1.867558 -0.977278
C C 0 0.144044 1.454274
4 0.313068 -0.854096
2 0.443863 0.333674
1 0.761038 0.121675
3 1.494079 -0.205158
为什么第一级重复?在每个组内部有更好的排序数据的方法吗?