簡體   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