2016-12-13 8 views
4

私はパンダの新しいユーザーです。パンダpivot_table、列単位で値をソート

私はPandasでピボットテーブルを作成しようとしています。いったん私が望むようにピボットテーブルを取得したら、列で値をランク付けしたいと思います。

Excelから画像を添付しましたが、私が達成しようとしているものを表形式で見やすくしています。 Link to image

私はstackoverflowで検索しましたが、回答を見つけることが困難です。私は.sort()を使ってみましたが、これはうまくいきません。どんな助けもありがとう。あなたが探しているものこれが何をすべき事前

+1

[MCVE]を入力し、[良いパンダの例を作る方法](http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples)にもご記入ください。 – IanS

答えて

7

ありがとう:

In [1]: df = pd.DataFrame.from_dict([{'Country': 'A', 'Year':2012, 'Value': 20, 'Volume': 1}, {'Country': 'B', 'Year':2012, 'Value': 100, 'Volume': 2}, {'Country': 'C', 'Year':2013, 'Value': 40, 'Volume': 4}]) 

In [2]: df_pivot = pd.pivot_table(df, index=['Country'], columns = ['Year'],values=['Value'], fill_value=0) 

In [3]: df_pivot 
Out [4]: 
    Value  
Year  2012 2013 
Country   
A   20 0 
B   100 0 
C   0 40 

In [5]: df = df.reindex(df_pivot['Value'].sort_values(by=2012, ascending=False).index) 

Out [6]: 
    Value  
Year  2012 2013 
Country   
B   100 0 
A   20 0 
C   0 40 

は、基本的にはソートされた値のインデックスを取得し、最初のピボットテーブルのインデックスを再作成します。

+0

ご協力いただきありがとうございます!あなたのコードは完全に機能しました。コード自体を掲載しないことに対する謝罪。私は次回にそうするでしょう。 – Kah

+0

あなたの答えがあればそれを受け入れることができますか?ありがとう。 – Algold

関連する問題