使用Pandas将CSV列转为列表时遇IndexError索引越界错误求助
问题分析与解决方案
错误根源
你遇到的IndexError: index 1 is out of bounds for axis 0 with size 1错误,核心原因是intro.csv用冒号(":")作为列分隔符,但Pandas的read_csv默认以逗号(",")为分隔符,导致读取后整个文件仅被识别为1列。当你尝试访问intro.columns[1]时,自然会因索引超出列数范围报错。
修正代码
修改read_csv的参数,指定正确的分隔符并处理文本中的引号,确保列被正确解析:
from pandas import read_csv # 读取intro.csv时指定分隔符为冒号,处理引号和分隔符后的空格 intro = read_csv('/home/patrick/Desktop/DataTest/intro.csv', sep=':', quotechar='"', skipinitialspace=True) names_m = read_csv('/home/patrick/Desktop/DataTest/testDataM.csv') # 提取列转为列表 intro_1 = intro[intro.columns[0]].tolist() intro_2 = intro[intro.columns[1]].tolist() master_list_m = intro.values.tolist() print(intro_1)
参数说明
sep=':':告知Pandas用冒号作为列分隔符quotechar='"'::指定双引号作为文本包裹符,避免把内容里的标点误判成分隔符skipinitialspace=True:忽略分隔符后的空格,保证列内容整洁
额外优化(可选)
针对testDataM.csv里名字带空格的情况,可批量去除字符串两端空格:
# 处理名字列的空格 names_m = names_m.apply(lambda x: x.str.strip() if x.dtype == 'object' else x)
内容的提问来源于stack exchange,提问作者pbear520
相关产品推荐
相关产品推荐

