使用Pandas排序不会返回所需的输出

2024-04-27 00:30:13 发布

您现在位置:Python中文网/ 问答频道 /正文

假设对于网络G,您有以下dict(Node ID,number of links),并希望将其转储到数据帧:

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

怎么了?你知道吗


Tags: of数据import网络idnodefalsenumber
1条回答
网友
1楼 · 发布于 2024-04-27 00:30:13

在我看来,您只需按“学位”列排序:

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

相关问题 更多 >