小编The*_*Man的帖子

NetworkX获取具有权重的节点的程度

我正在使用NetworkX来创建加权图(而不是有向图).每个节点都有一个节点名称和一些具有权重的边.权重始终为正,非零整数.

我要做的是获取一个元组列表,其中每个元组代表图中的一个节点(按名称)和节点的加权程度.

我可以这样做:

the_list = sorted(my_graph.degree_iter(),key=itemgetter(1),reverse=True)
Run Code Online (Sandbox Code Playgroud)

但这似乎并未将每个节点的权重考虑在内.每个节点可能对每个边缘具有不同的权重(或者它们可能是相同的,没有办法知道).

我是否需要编写一个手动执行此操作的功能?我一直在浏览NetworkX文档,并且以内置方式空出来做这个(但也许我忽略了它).

如果我必须自己编写函数,我假设我使用size()带有weight标志集的方法.这似乎只给了我图中所有权重的总和.

任何帮助是极大的赞赏.

python networkx python-2.7

6
推荐指数
1
解决办法
6118
查看次数

重塑熊猫数据框架

我正在使用像这样的Pandas解析一些HTML数据:

rankings = pd.read_html('https://en.wikipedia.org/wiki/Rankings_of_universities_in_the_United_Kingdom')
university_guide = rankings[0]
Run Code Online (Sandbox Code Playgroud)

这给了我一个很好的数据框: 在此输入图像描述

我想要的是重塑这个数据框,这样只有两列(排名和大学名称).我目前的解决方案是做这样的事情:

ug_copy = rankings[0][1:]
npa1 = ug_copy.as_matrix( columns=[0,1] )
npa2 = ug_copy.as_matrix( columns=[2,3] )
npa3 = ug_copy.as_matrix( columns=[4,5] )

npam = np.append(npa1,npa2)
npam = np.append(npam,npa3)

reshaped = npam.reshape((npam.size/2,2))

pd.DataFrame(data=reshaped)
Run Code Online (Sandbox Code Playgroud)

这给了我想要的东西,但它似乎不是最好的解决方案.我似乎找不到使用数据框完成所有这一切的好方法.我尝试过使用堆栈/取消堆栈并转动数据框(正如其他一些解决方案所建议的那样),但我没有运气.我尝试过这样的事情:

ug_copy.columns=['Rank','University','Rank','University','Rank','University']
ug_copy = ug_copy[1:]
ug_copy.groupby(['Rank', 'University'])
Run Code Online (Sandbox Code Playgroud)

必须要有一些我想念的东西!

python python-2.7 pandas

0
推荐指数
1
解决办法
9529
查看次数

标签 统计

python ×2

python-2.7 ×2

networkx ×1

pandas ×1