Python读取CSV单列数据并转换为列表的问题求助
读取CSV单列数据并转为列表的正确方法
你当前的代码之所以得到单个字符的列表,是因为两个关键问题:
- 用
header=1读取CSV时,错误地把第二行(Tom)当成了表头,导致实际读取的数据结构不对 - 调用
to_string()将DataFrame转为格式化字符串后,遍历字符串会逐个字符添加到列表,自然得不到完整的名字
正确解法(Pandas版本)
直接提取目标列的Series,再转为列表即可:
import pandas as pd # 读取CSV,默认header=0对应第一行的"Names"作为表头 data_frame = pd.read_csv("analysts.csv") # 提取Names列并转为列表 UserNames = data_frame['Names'].tolist() print(UserNames) # 输出: ['Tom', 'Ryan', 'John']
另一种解法(内置csv模块)
如果不想用Pandas,用Python内置的csv模块也能实现:
import csv UserNames = [] with open("analysts.csv", 'r', newline='') as f: # 用DictReader按列名读取 reader = csv.DictReader(f) for row in reader: UserNames.append(row['Names']) print(UserNames) # 输出: ['Tom', 'Ryan', 'John']
内容的提问来源于stack exchange,提问作者iZAK
相关产品推荐
相关产品推荐

