繁体   English   中英

使用Python在CSV文件中对列进行乘法/除法

[英]Using Python to multiply/divide columns in CSV files

所以我有很多CSV文件,每个文件中有6列数字。 我想使用Python对每个CSV文件中的每一列执行一些操作(乘法,除法等)。

import csv

r = csv.reader(open('F:\python\sample.csv','rb'))

w = csv.writer(open('F:\python\sample_calib.csv','wb',buffering=0))

for row in r:
            a = (float(row[0])-0.0376)/-0.0717
            b = (float(row[1])-0.0376)/-0.0717
            c = float(row[2])/1000
            d = float(row[3])/1000
            e = float(row[4])/1000000
            f = float(row[5])/0.001178
            w.writerow([a,b,c,d,e,f])

所以我使用上面的这个小脚本来校准每一行,这对于每个.csv文件都可以正常工作。 现在,我想要做的就是在一个文件夹中运行200个FILES的脚本。 有人可以告诉我应该如何编辑脚本以及要添加哪些模块?

您需要熟悉csv模块: http//docs.python.org/library/csv.html

假设您知道每列的排列和数据类型,最好的选择是NumPyloadtxt函数。

使用它的代码看起来像这样:

import numpy as np
dtype = np.format_parser(['f4', 'f4', 'i4'], ['col1', 'col2', 'col3'], [])
array = np.loadtxt(path_to_file, dtype, delimiter=',')

然后,您可以像这样对整个列执行操作。

output = array['col1'] + array['col2']

f4i4指的是每列的数据类型 - f4是32位浮点数, i4是32位整数。 其他选项是i8f8aN用于64位整数,64位浮点数和N长度字符串。

一个警告 - 如果您的数据包含包含逗号的字符串,则loadtxt函数无法很好地处理它们。 在这种情况下,您必须按照其他海报的建议使用csv模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM