Pandas排序行值

时间:2016-11-05 13:13:51

标签: python pandas

我有一个像这样的pandas数据框:

    Col1  Col2  Col3
1   1092  203   802 

是否可以对此数据框进行排序并得到如下结果:

    Col1  Col3  Col2
1   1092  802   203 

我尝试了sort_values,但它不起作用。我的工作是df.T.sort_values(...)

2 个答案:

答案 0 :(得分:9)

0.19.0开始,您可以根据行值对列进行排序。

df.sort_values(by=1, ascending=False, axis=1)

enter image description here

条形图:

使用ggplot:

melt_df = pd.melt(df, var_name='Cols')
ggplot(aes(x="Cols", weight="value"), melt_df) + geom_bar()

Image

使用内置:

melt_df.plot.bar(x=['Cols'], y=['value'], legend=False, cmap=plt.cm.Spectral)
plt.show()

Image

答案 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'