Networkx:通过在节点列表中循环添加属性时,Indexer:列表索引超出范围

2024-10-17 08:24:32 发布

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

Python中的Networkx存在问题:

我使用分隔符“,”将我的csv文件上传到Python中。我现在有一个节点主义者和一个边缘主义者。当我试图将csv(节点)文件中的属性分配给空字典时,我收到了错误

索引器:列表索引超出范围

赫比:我加了一段代码

nodereader = csv.reader(nodecsv, delimiter=(','))
nodes= [n for n in nodereader][1:]

node_names = [n[0] for n in nodes] # List 1


household_dict = {}
household_dict[node[0]]=node[2]

为什么它不起作用??问题是我的代码没有将每一行分隔成不同的列。下面是csv文件的结构

CSV文件(仅一列):

Id、标签、家庭、生产者、剩余

0,三K党1,2,Ja,1
1,三K党2,2,东北,0
2,三K党3,4,东北,0


Tags: 文件csv代码innetworkxnodefor节点
1条回答
网友
1楼 · 发布于 2024-10-17 08:24:32

我不想深入研究您从文件中提取的节点。但是,请参见下面解析csv的通用语法。你可以很容易地根据你的目的来调整它

with open('filePath\\fileName.csv', mode='r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are {", ".join(row)}')
            line_count += 1
        print(f'\tID: {row["Id"]}, Label: {row["Label"]}, Household: {row["Household"]}, Producer: {row["Producer"]}, Surplus: {row["Surplus"]}')
        line_count += 1
    print(f'Processed {line_count} lines.')

相关问题 更多 >