我認爲你可以使用DataFrame.sort_values
如果class
是Series
:
print (type(df['class']))
<class 'pandas.core.series.Series'>
print (df.sort_values(by='class'))
class col2 col3 col4 col5
0 1 4.0 5.0 5.0 5.0
2 1 3.5 5.0 6.0 4.5
4 2 3.0 3.5 3.8 6.1
3 3 3.0 4.0 4.0 4.0
1 4 4.0 4.5 5.5 6.0
此外,如果需要groupby
,使用參數by
:
print (df.groupby(by='class').sum())
col2 col3 col4 col5
class
1 7.5 10.0 11.0 9.5
2 3.0 3.5 3.8 6.1
3 3.0 4.0 4.0 4.0
4 4.0 4.5 5.5 6.0
如果class
是index
,使用Kartik solution
:
print (df.index)
Int64Index([1, 4, 1, 3, 2], dtype='int64', name='class')
print (df.sort_index())
col2 col3 col4 col5
class
1 4.0 5.0 5.0 5.0
1 3.5 5.0 6.0 4.5
2 3.0 3.5 3.8 6.1
3 3.0 4.0 4.0 4.0
4 4.0 4.5 5.5 6.0
此外,如果需要groupby
,使用參數level
:
print (df.groupby(level='class').sum())
col2 col3 col4 col5
class
1 7.5 10.0 11.0 9.5
2 3.0 3.5 3.8 6.1
3 3.0 4.0 4.0 4.0
4 4.0 4.5 5.5 6.0
或index
,但第一個解決方案是更好,因爲它更普遍:
print (df.groupby(df.index).sum())
col2 col3 col4 col5
class
1 7.5 10.0 11.0 9.5
2 3.0 3.5 3.8 6.1
3 3.0 4.0 4.0 4.0
4 4.0 4.5 5.5 6.0
df.sort_values(by ='class')這個工作完美。謝謝 – jax
很高興能幫助你。美好的一天! – jezrael