如何用Pandas读取CSV首列到列表?重复结果问题排查
问题排查步骤与解题思路
一、先修正核心列选择错误
你代码里用了df.columns[1],但Python索引从0开始,这个取的是第二列,如果你的目标是第一列,必须改成df.columns[0]——这是最容易踩的坑,先确认这个点。
二、排查重复列表的具体原因
1. 验证每个CSV的读取结果
在读取每个文件后,先打印DataFrame的基础信息和前几行,确认数据是否正确读取:
df1 = pd.read_csv('C:\\Users\\fskid\\OneDrive\\Documents\\Data Structures Fall 2023\\Homework Five Python\\SportsTeamsOne.csv') print("=== df1 信息 ===") df1.info() print(df1.head()) # 对df2、df3执行同样的打印操作
这一步能快速确认:
- 三个文件路径是否真的指向不同文件(会不会复制粘贴时路径没改全?)
- 每个CSV的列结构、数据内容是否符合预期
- 是代码读取错误导致重复,还是CSV文件本身内容重复
2. 替换更直观的列选择方式
避免用列索引可能带来的混淆,推荐两种更清晰的写法:
- 明确取第一列:
df.iloc[:, 0].tolist()(iloc是按位置索引,[:,0]表示所有行的第0列) - 如果知道列名,直接用列名:
df['你的第一列列名'].tolist(),比索引更不容易出错
3. 重构代码减少冗余(避免重复出错)
你当前的代码重复度太高,用循环批量处理多个文件,既简洁又能降低重复代码的出错概率:
import pandas as pd # 把所有文件路径统一存到列表 file_paths = [ 'C:\\Users\\fskid\\OneDrive\\Documents\\Data Structures Fall 2023\\Homework Five Python\\SportsTeamsOne.csv', 'C:\\Users\\fskid\\OneDrive\\Documents\\Data Structures Fall 2023\\Homework Five Python\\SportsTeamsTwo.csv', 'C:\\Users\\fskid\\OneDrive\\Documents\\Data Structures Fall 2023\\Homework Five Python\\SportsTeamsThree.csv' ] # 循环读取并提取第一列 all_lists = [] for path in file_paths: df = pd.read_csv(path) first_col_list = df.iloc[:, 0].tolist() all_lists.append(first_col_list) # 逐个打印结果 for i, lst in enumerate(all_lists, 1): print(f"列表{i}: {lst}")
三、额外调试建议
- 若怀疑是环境缓存问题,重启Python解释器后再运行代码
- 手动打开三个CSV文件,确认第一列内容是否本身就重复(有时候是文件本身的问题)
内容的提问来源于stack exchange,提问作者fskiddles
相关产品推荐
相关产品推荐

