大家好,我的数据框中有以下列:
LC_REF
1 DT 16 2C
2 DT 16 2C
3 DT 16 2C
1 DT 16 3C
6 DT 16 3C
3 DT 16 3C
7 DT 16 3C
0 DT 17 1C
0 DT 17 1C
0 DT 17 1C
1 DT 17 1C
0 DT 17 2C
2 DT 17 2C
4 DT 17 2C
5 DT 17 2C
4 DT 17 3C
1 DT 17 3C
8 DT 17 3C
我想知道是否有可能组织每一组LC_REF,使得索引按升序排列:
LC_REF
1 DT 16 2C
2 DT 16 2C
3 DT 16 2C
1 DT 16 3C
3 DT 16 3C
6 DT 16 3C
7 DT 16 3C
0 DT 17 1C
0 DT 17 1C
0 DT 17 1C
1 DT 17 1C
0 DT 17 2C
2 DT 17 2C
4 DT 17 2C
5 DT 17 2C
1 DT 17 3C
4 DT 17 3C
8 DT 17 3C
到目前为止,我已尝试过:
df.groupby('LC_REF').apply(pd.DataFrame.sort_index,'LC_REF',1)
grouped = df.groupby('LC_REF').sum().reset_index()
但是没有给出正确的输出。
答案 0 :(得分:3)
我认为最好使用reset_index
来代替index
,然后是sort_values
和最后set_index
:
df = df.reset_index().sort_values(['LC_REF','index']).set_index('index').rename_axis(None)
print (df)
LC_REF
1 DT 16 2C
2 DT 16 2C
3 DT 16 2C
1 DT 16 3C
3 DT 16 3C
6 DT 16 3C
7 DT 16 3C
0 DT 17 1C
0 DT 17 1C
0 DT 17 1C
1 DT 17 1C
0 DT 17 2C
2 DT 17 2C
4 DT 17 2C
5 DT 17 2C
1 DT 17 3C
4 DT 17 3C
8 DT 17 3C
答案 1 :(得分:1)
df = pd.read_table(StringIO(“”“
 id LC_REF
 1 DT 16 2C
 2 DT 16 2C
 3 DT 16 2C
 1 DT 16 3C
 6 DT 16 3C
 3 DT 16 3C
 7 DT 16 3C
 0 DT 17 1C
 0 DT 17 1C
 0 DT 17 1C
 1 DT 17 1C& #xA; 0 DT 17 2C
 2 DT 17 2C
 4 DT 17 2C
 5 DT 17 2C
 4 DT 17 3C
 1 DT 17 3C
 8 DT 17 3C“ “”),sep ='')

 df.sort_values(['LC_REF','id'],升序=真)

&#xA ;