Jed*_*zej 9 python sorting dataframe python-3.x pandas
如何按工作日名称对 DataFrame 进行排序?我不能使用 pd.to_datetime() 方法,因为我的日期不是数字。
Date Transactions
0 Friday 140.652174
1 Monday 114.000000
2 Saturday 208.826087
3 Sunday 140.565217
4 Thursday 118.217391
5 Tuesday 107.826087
6 Wednesday 105.608696
Run Code Online (Sandbox Code Playgroud)
jez*_*ael 10
您可以将列值转换为有序分类,因此可以使用sort_values:
cats = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
df['Date'] = pd.Categorical(df['Date'], categories=cats, ordered=True)
df = df.sort_values('Date')
print (df)
Date Transactions
1 Monday 114.000000
5 Tuesday 107.826087
6 Wednesday 105.608696
4 Thursday 118.217391
0 Friday 140.652174
2 Saturday 208.826087
3 Sunday 140.565217
Run Code Online (Sandbox Code Playgroud)
或者从Date列创建一个索引set_index,然后reindex和最后reset_index:
注意:
解决方案仅在列值唯一时才有效
df = df.set_index('Date').reindex(cats).reset_index()
print (df)
Date Transactions
0 Monday 114.000000
1 Tuesday 107.826087
2 Wednesday 105.608696
3 Thursday 118.217391
4 Friday 140.652174
5 Saturday 208.826087
6 Sunday 140.565217
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5195 次 |
| 最近记录: |