我有一个像这样的pandas数据框:
Col1 Col2 Col3
1 1092 203 802
是否可以对此数据框进行排序并得到如下结果:
Col1 Col3 Col2
1 1092 802 203
我尝试了sort_values
,但它不起作用。我的工作是df.T.sort_values(...)
答案 0 :(得分:9)
从0.19.0
开始,您可以根据行值对列进行排序。
df.sort_values(by=1, ascending=False, axis=1)
条形图:
使用ggplot:
melt_df = pd.melt(df, var_name='Cols')
ggplot(aes(x="Cols", weight="value"), melt_df) + geom_bar()
使用内置:
melt_df.plot.bar(x=['Cols'], y=['value'], legend=False, cmap=plt.cm.Spectral)
plt.show()
答案 1 :(得分:0)
如果我的数据框具有日期时间索引,并且我想对最后一个日期时间的值进行排序怎么办?我尝试过:
df.sort_values(by=df.iloc[-1],ascending=False,inplace=True)
和
df.sort_values(by=df.index[-1],ascending=False,inplace=True)
我收到错误消息:“ Exeption Unhandled Timestamp('2018-12-05 20:12:10')”
我的索引类型是'datetime64'