[英]Load all rows in csv file - Python
我想将一个 csv 文件加载到 python 中。 csv 文件包含随机数量的学生和随机数量的作业的成绩。
我希望python删除标题和第一列(学生姓名),这是我的代码:
with open("testgrades.csv") as f:
ncols = len(f.readline().split(','))
nrows = sum(1 for row in f)
grades = np.loadtxt("testgrades.csv", delimiter=',', skiprows=1, usecols=range(1,ncols+1))
print(document1)
该代码适用于列,但如果我在 csv 文件中添加一行或多行就无法处理?
我的 CSV 文件:
和 Python 的输出:
您的csv
图像看起来像一个乱七八糟的电子表格图像。 它不是csv
文件本身的副本,它是纯文本。 您应该能够将该文本复制粘贴到您的问题中。
Output
图像是一个数组,其数字对应于csv
图像的前 6 行。
你的问题不清楚。 我猜您将最后 2 行添加到电子表格中,并且在将它们加载到numpy
遇到问题。 我认为电子表格图像中的这些数字没有任何问题。 但是,如果您显示实际的 csv 文件内容,我们可能会发现问题所在。 也许您实际上并没有将这些添加的行写入 csv 文件。
您的代码示例,更正缩进是:
with open("testgrades.csv") as f:
ncols = len(f.readline().split(','))
nrows = sum(1 for row in f)
grades = np.loadtxt("testgrades.csv", delimiter=',', skiprows=1, usecols=range(1,ncols+1))
print(grades)
我可以看到使用ncols
来确定列数。 usecols
参数需要一个明确的列列表,而不是某种all-but-first
。 您也可以从普通的loadtxt
(或genfromtxt
)中获得该数字。
但是为什么要计算nrows
呢? 你似乎没有使用它。 在loadtxt
不需要它。 如果您需要限制读取的行数, genfromtxt
允许使用max_rows
参数。
Python 有一个特殊的模块用于读写 CSV 文件Python CSV
蟒蛇 2
import csv
with open('testgrades.csv', 'rb') as f:
蟒蛇 3
import csv
with open('testgrades.csv', newline='') as f:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.