Использование Python для умножения / разделения столбцов в файлах CSV - PullRequest
1 голос
/ 27 февраля 2012

Итак, у меня есть несколько CSV-файлов с 6 столбцами чисел в каждом файле.Я хотел бы выполнить несколько операций (умножение, деление и т. Д.) Для каждого столбца в каждом из файлов CSV, используя Python.

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 файлов в одной папке.Может кто-нибудь сказать мне, как мне отредактировать скрипт и какие модули добавить?

Ответы [ 2 ]

4 голосов
/ 27 февраля 2012

Вам захочется ознакомиться с модулем csv: http://docs.python.org/library/csv.html

0 голосов
/ 27 февраля 2012

Предполагая, что вы знаете расположение и тип данных каждого столбца, вам лучше всего выбрать 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, как рекомендовано другими авторами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...