Python按字母顺序排序数据框

She*_*ron 5 python pandas

我想按学生姓名重新排序数据框.有人有什么建议吗?

df = pd.DataFrame({
        'student': [
            'monica', 'nathalia', 'anastasia', 'marina', 'ema'
        ],

    'grade' : ['excellent', 'excellent', 'good', 'very good', 'good'
    ]
    })

    print (df)

                student   grade

        0       monica    excellent        
        1       nathalia  excellent         
        2       anastasia good        
        3       marina    very good          
        4       ema       good 
Run Code Online (Sandbox Code Playgroud)

小智 13

大熊猫0.17:

# Sort by ascending student name
df.sort('student')
# reverse ascending
df.sort('student', ascending=False)
Run Code Online (Sandbox Code Playgroud)

熊猫0.17+(如其他答案中所述):

# ascending
df.sort_values('student')
# reverse ascending
df.sort_values('student', ascending=False)
Run Code Online (Sandbox Code Playgroud)

  • 剩下一点点,别忘了把排序后的 df 赋回去。我挠头想知道为什么代码不起作用哈哈。 (6认同)

Jam*_*mes 7

您可以使用该sort_values方法对数据框进行排序。

df.sort_values('student')
Run Code Online (Sandbox Code Playgroud)


eve*_*007 5

熊猫 0.19.2

df.sort_values(by=['contig', 'pos'], ascending=True)

# where contig and pos are the column names. So, you may change for yours.
Run Code Online (Sandbox Code Playgroud)

注意:inplace如果要更新相同的数据框,则使用非常重要。大多数人对何时使用/不使用就地感到困惑。

如果你想制作一个新的数据框。

df_sorted = df.sort_values(by=['contig', 'pos'], inplace=False, ascending=True)
Run Code Online (Sandbox Code Playgroud)