我有一个csv文件,其中有一列数值(很多行),我想循环csv文件中的行作为数值,以便进一步处理。例如,假设我想找到最小值和最大值。
编辑:为清楚起见,添加了特定用例,我的csv文件是0.12秒复合视频的示波器电压读数(600万个点或csv行)。我将需要确定何时开始一个新的场,并从该点开始处理数据,因为我想将单个场逐个像素地重新创建到图像文件中。稍后,我将“清理”复合信号,然后我将创建一个新的场。我用这个作为非实时测试。
我能够加载我的csv文件并使用下面的示例代码打印数据,但它似乎是一个字符串而不是数字数据行。
import csv
with open('ExampleFile.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
print(row)
csv文件中的几行数据:1.65 1.71 1.49 1.33 1.06 0.703 0.301 0.261 0.442 0.622 0.723 0.683 0.843 1.2 1.63 1.71 1.49 1.31 1.04 0.663
3条答案
按热度按时间zyfwsgd61#
如果它只有一列,就不是真正的CSV文件......无论哪种方式,
csv
模块都不会为您解析数字(这是一件好事-看看Excel如何处理您的数据,如果它感觉像这样......)。下面是一个扩展代码的示例,它将第零列解析为一个数字,并跟踪最小值和最大值(而不必一次将所有文件读入内存)。
如果文件很小,你不介意将其全部读入内存,并对数据进行两次遍历以获得最小值和最大值,那么使用列表解析来循环文件会变得更简单:
tcomlyy62#
您可以使用
Pandas
来处理csv文件并推断列数据类型,特别是如果您想要应用一些数据处理:输出:
vnjpjtjt3#
假设您实际上只有一列数据。