[英]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
假設您知道每列的排列和數據類型,最好的選擇是NumPy和loadtxt函數。
使用它的代碼看起來像這樣:
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']
f4
和i4
指的是每列的數據類型 - f4
是32位浮點數, i4
是32位整數。 其他選項是i8
, f8
或aN
用於64位整數,64位浮點數和N長度字符串。
一個警告 - 如果您的數據包含包含逗號的字符串,則loadtxt函數無法很好地處理它們。 在這種情況下,您必須按照其他海報的建議使用csv
模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.