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

如何将含嵌套数组的特殊格式CSV加载至Python Pandas DataFrame

解决Twitter特殊格式数据集加载到Pandas的方法

嘿,针对你这个Kaggle的Twitter数据集问题,我给你几个实用的方案,专门应对这种首行列标题、后续行是JSON数组的大文件场景:

方案一:逐行解析(内存友好,适合超大文件)

这种方法不会一次性把整个文件读进内存,逐行处理的方式对内存压力极小,特别适合规模超大的数据集:

import pandas as pd
import json

# 初始化存储数据的列表
data_rows = []

with open('twitter_dataset.csv', 'r', encoding='utf-8') as f:
    # 读取首行作为列标题,根据实际分隔符调整(比如逗号、制表符)
    column_names = f.readline().strip().split(',')
    # 逐行读取后续内容
    for line in f:
        line = line.strip()
        if not line:  # 跳过空行
            continue
        # 解析JSON数组,捕获错误避免程序崩溃
        try:
            row_data = json.loads(line)
            data_rows.append(row_data)
        except json.JSONDecodeError as e:
            print(f"解析行出错: {e},已跳过该行")

# 转换为Pandas DataFrame
df = pd.DataFrame(data_rows, columns=column_names)

方案二:Pandas快速读取+批量解析

如果文件规模没到极致,这个方法更简洁,利用Pandas先把每行读成字符串,再批量解析JSON:

import pandas as pd
import json

# 先把整个文件按行读取,首行作为临时列名
temp_df = pd.read_csv('twitter_dataset.csv', header=0, names=['json_content'], encoding='utf-8')

# 解析每个JSON字符串为数组,再展开成DataFrame的列
df = temp_df['json_content'].apply(json.loads).apply(pd.Series)

# 给DataFrame赋值正确的列标题
df.columns = temp_df.columns.tolist()  # 替换成你实际读取的首行列标题列表

方案三:分块处理超大文件(平衡效率和内存)

如果文件大到连方案二都撑不住,就用Pandas的分块读取功能,每次处理一小部分数据:

import pandas as pd
import json

# 设定每次读取的行数,根据你的内存情况调整(比如10000行一块)
chunk_size = 10000
final_df = pd.DataFrame()

# 分块读取并处理文件
for chunk in pd.read_csv('twitter_dataset.csv', header=0, names=['json_content'], chunksize=chunk_size, encoding='utf-8'):
    # 解析当前块的JSON数据
    parsed_chunk = chunk['json_content'].apply(json.loads).apply(pd.Series)
    # 拼接到最终DataFrame
    final_df = pd.concat([final_df, parsed_chunk], ignore_index=True)

# 赋值正确的列标题
final_df.columns = column_names  # column_names是之前读取的首行列标题列表

额外注意点

  • 一定要确认首行的列标题数量和每行JSON数组的元素数量完全对应,不然会出现列不匹配的问题
  • 如果文件有特殊编码(比如带BOM的UTF-8),记得在open或read_csv里指定encoding='utf-8-sig'
  • 遇到解析错误的行,可以根据需求选择跳过或者记录错误日志,避免整个程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:01:20