簡體   English   中英

拆分列 Pd.DataFrame

[英]Split columns Pd.DataFrame

我有一個由 Igraph 生成的 Pd.Dataframe,我想知道如何擁有一個更干凈的表:

我有的:

degree
(igraph.Vertex(<igraph.Graph object at 0x7f894149fe50>, 5, {'name': 8}), 20)
(igraph.Vertex(<igraph.Graph object at 0x7f894149fe50>, 6, {'name': 9}), 8)
(igraph.Vertex(<igraph.Graph object at 0x7f894149fe50>, 34, {'name': 45}), 8)
...

我只想要自由度和中心性值:

node   centrality
8      20
9      8
45     8
...

非常感謝你。

更新

df = pd.DataFrame(sorted([(n['name'], c) for n, c in zip(g.vs, g.degree())],
                         reverse=True, key=lambda x: x[1]),
                  columns=['node', 'centrality'])

舊答案

修改你的功能:

def degree_centrality(graph):
    score_list = graph.degree()
    data = sorted([(graph.vs[i]['name'], score_list[i])
                       for i in range(0,len(score_list))],
                  key=lambda x:x[1], reverse=True)
    df = pd.DataFrame(data, columns=['node', 'centrality'])
    return df

df = degree_centrality(g)

輸出樣本:

>>> df
  node  centrality
0    C           4
1    A           3
2    D           3
3    F           3
4    E           2
5    G           2
6    B           1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM