假设你有一个网络G
,下面的dict有(节点ID,链接数),并且你想把它转储到Pandas DataFrame:
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
现在假设您希望按照降序对Degree数据列进行排序。如果我这样做
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
出了什么问题?
答案 0 :(得分:4)
在我看来,你只需按Degree列排序:
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