如何将单列CSV文件转换为可读取文本的嵌套列表(Python)
解决CSV转嵌套列表时文本被拆分为单个字符的问题
你的问题出在读取和转换数据的步骤上,让我一步步帮你修正:
问题根源
你用pd.read_csv得到的是一个DataFrame对象,然后直接把整个DataFrame放进pd.Series([sentence]),这相当于把整个表格作为单个元素存入Series。当你调用.tolist()时,Python会迭代这个DataFrame的底层结构,最终把文本拆成了单个字符。
正确解决方案
步骤1:正确读取单列CSV
因为你的CSV只有一列,直接用squeeze=True参数把读取结果转换成Series(每个元素对应一行文本);如果你的CSV没有表头,记得加上header=None避免把第一行文本当成列名:
import pandas as pd # 读取单列CSV,直接得到每行文本组成的Series sentences = pd.read_csv("myfile.csv", encoding='utf-8', header=None, squeeze=True)
步骤2:生成嵌套列表
遍历这个Series,把每个文本字符串放进单独的子列表里:
# 生成包含30万个子列表的嵌套列表 nested_list = [[sent] for sent in sentences]
这样得到的结果就是你想要的:每个子列表里是完整的字符串句子,比如[['What is the...'], ['Another sentence...'], ...]。
验证小例子
假设你的CSV内容是:
Hello World Python is great Data processing
运行上述代码后,nested_list会是:
[['Hello World'], ['Python is great'], ['Data processing']]
内容的提问来源于stack exchange,提问作者twhale
相关产品推荐
相关产品推荐

