You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Twitter用户-关注者列表生成嵌套列表以适配NetworkX分析的数据格式转换

解决社交网络数据格式转换的循环逻辑问题

看起来你卡在了将原始列表转换为嵌套列表的循环上,我来帮你修正逻辑并给出完整的解决方案。

首先,咱们先梳理你的核心需求:把每行格式为用户ID,关注者1,关注者2,...的数据,转换为[[用户ID,关注者1], [用户ID,关注者2], ...]的嵌套列表,之后转成DataFrame存为CSV。

你的代码存在的问题

  1. 语法错误:line(i)是调用函数的写法,但line是列表,应该用line[i],不过这本身逻辑也不对
  2. 循环范围错误:你遍历了整行的所有元素(包括用户ID自己),会导致出现[用户ID, 用户ID]的无效数据
  3. 嵌套列表构建逻辑错误:你试图修改matrix的第i个元素,但实际上应该逐个新增子列表,而不是覆盖已有位置

修正后的代码

lines = []  # 你的原始数据列表,比如每行是类似"user_001,follower_002,follower_003"的字符串
matrix = []

for line in lines:
    # 分割每行数据为列表,同时清理每个元素的前后空格(避免数据里的多余空格)
    parts = [item.strip() for item in line.split(',')]
    user_id = parts[0]
    # 遍历从第二个元素开始的所有关注者
    for follower in parts[1:]:
        # 跳过空字符串(处理行尾有多余逗号的情况)
        if follower:
            matrix.append([user_id, follower])

后续转成DataFrame并写入CSV

完成嵌套列表构建后,就可以用Pandas处理成你需要的CSV格式:

import pandas as pd

# 转换为DataFrame并指定列名
df = pd.DataFrame(matrix, columns=['User', 'Follower'])
# 写入CSV,不保存索引列
df.to_csv('social_network_data.csv', index=False)

逻辑说明

  • 先对每行数据做分割和清理,确保每个元素没有多余空格
  • 提取每行第一个元素作为用户ID,然后遍历该行剩下的所有元素(即关注者)
  • 每个关注者和用户ID组成一个子列表,添加到matrix中
  • 增加空字符串判断,避免因为行尾多余逗号产生无效的空关注者条目

这样处理后,你的嵌套列表就完全符合需求,后续转CSV也能得到你想要的两列格式啦。

内容的提问来源于stack exchange,提问作者eeno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:37:31