给定样本数据帧df:

import pandas as pd

df = pd.DataFrame({
    'id': [1, 2, 3, 4, 5],
    'a': [55, 2123, -19.3, 9, -8], 
    'b': ['aa', 'bb', 'ad', 'kuku', 'lulu']
})

现在我想把这些数据"上传"到一个图表上.每一行都应该是一个具有idab个属性的 node .

我试着用from_pandas_dataframeNetworkX方法来做这件事.

请告知哪个职能部门负责在NetworkX年内完成这项工作?

推荐答案

from_pandas_edgelist函数需要both the source and target.

from networkx import nx
G = nx.from_pandas_edgelist(df, source='id', target='col_target')

您可以使用循环生成图形:

from networkx import nx
G = nx.Graph()

for i, attr in df.set_index('id').iterrows():
    G.add_node(i, **attr.to_dict())

或者,对于from_pandas_edgelist,如果您真的只需要 node ,您可能需要添加一个虚拟目标:

G = nx.from_pandas_edgelist(df.assign(target='none'),
                            source='id', target='target',
                            edge_attr=['a', 'b'])

enter image description here

然后移除虚拟 node :

G.remove_node('none')

enter image description here

Python-3.x相关问答推荐

在循环访问XML中的多个层时,xml.etree.Elementree Python3解析器不起作用

泛型类型的参数的静态类型

将两列的乘积连续添加到一列的累积和中

查找值始终为零的行 pandas

如何将值映射到具有上限和下限的新列

命名空间前缀无效

tkinter/python3.9 中的 Entry 子类和用户输入重复的问题

如何将 OLS 趋势线添加到使用 updatemenus 显示数据子集的 plotly 散点图图形对象?

将两列合并为一列,将它们制成字典 - pandas - groupby

过滤阈值大小数据以使用 Pyspark 或 Python 读取

总结基于条件的值,如果不匹配则保留当前值

pymongo 失败并出现错误未定义

如何将数据框中的每一行转换为具有属性的 node ?

为什么 f-strings 比 str() 更快地解析值?

ImportError:没有名为资源的模块

pip install mysqlclient 失败为 mysqlclient 运行 setup.py bdist_wheel ... 错误

TimescaleDB:是否可以从 Python 调用create_hypertable?

如何避免使用我的 python 包构建 C 库?

什么是ANSI_X3.4-1968编码?

为什么异步库比这个 I/O 绑定操作的线程慢?