2016-10-20 5 views
4

を返しませんが、ネットワークG、(ノードID、リンクの数)で、以下の辞書のために、あなたが持っていると言うと、あなたはパンダデータフレームにそれをダンプしたいと言う:パンダでソートすると、所望の出力

import pandas as pd 
import networkx as nx 

degree=pd.DataFrame({'Node ID':G.degree().keys(),'Degree':G.degree().values()}) 
degree=degree[['Node ID','Degree']] #re-order 

あなたはこの取得:

In[1]: degree.head(5) 
Out[1]: 
    Node ID Degree 
0 0  19 
1 1  117 
2 2  13 
3 3  56 
4 4  15 

は今、あなたは降順で、学位列に関して、このデータフレームをソートしたいと言います。私はこの

sort_degree=degree.sort_values(['Node ID', 'Degree'], ascending=[False, False], inplace=False) 

をすれば、私は私が欲しいものを得ることはありません:

Node ID Degree 
4 4  15 
3 3  56 
2 2  13 
1 1  117 
0 0  19 

間違っているのですか?

+3

「Degree」列のみでソートするのはなぜですか? 'sort_degree = degree.sort_values( 'Degree'、昇順= False)' – EdChum

答えて

4

はあなたが唯一の学位列でソートする必要があるように思える:

In [156]: 
sort_df = df.sort_values('Degree', ascending=False) 
sort_df 

Out[156]: 
    Node ID Degree 
1  1  117 
3  3  56 
0  0  19 
4  4  15 
2  2  13 

あなたが複数の列を渡すと、それはドキュメントを参照、それらが渡されるために、それらの列でソートします:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html#pandas.DataFrame.sort_values

関連する問題