如何将CSV文件转换为Python中的数值型二维数组?
问题:将CSV文件转换为指定格式的二维整数数组
待转换的CSV内容:
x,y 0,1 1,2 2,3 3,0 3,3
期望得到的二维数组格式:
E = [[0, 1], [1, 2], [2, 3], [3, 0], [3, 3]]
使用以下代码尝试转换:
x = list(csv.reader(open('edges.csv')))
得到的结果包含表头且元素为字符串:
[['x', 'y'], ['0', '1'], ['1', '2'], ['2', '3'], ['3', '0'], ['3', '3']]
解决方案
方法一:原生csv模块处理
利用next()跳过表头,再通过列表推导式将字符串元素转为整数:
import csv with open('edges.csv', 'r') as file: csv_reader = csv.reader(file) next(csv_reader) # 跳过表头行 E = [[int(item) for item in row] for row in csv_reader] # 验证结果 print(E) # 输出:[[0, 1], [1, 2], [2, 3], [3, 0], [3, 3]]
方法二:使用pandas库(适合大规模数据)
如果已安装pandas,可通过更简洁的代码完成转换:
import pandas as pd # 读取CSV并转为二维列表 df = pd.read_csv('edges.csv') E = df.values.tolist() print(E) # 输出:[[0, 1], [1, 2], [2, 3], [3, 0], [3, 3]]
内容的提问来源于stack exchange,提问作者user346206
相关产品推荐
相关产品推荐

