Начало работы с обработкой данных с помощью Python - PullRequest
1 голос
/ 27 июля 2010

У меня в таблице Excel около 3 миллионов ячеек. я задал следующий вопрос, и мне понравился ответ о сохранении таблицы в формате CSV и последующей обработке ее с помощью python:

решение для выполнения большого количества вычислений на 3 миллионах точек данных и составления диаграмм

  1. Есть ли библиотека, которую я могу использовать, которая будет считывать CSV в матрицу, или я должен написать ее сам?
  2. говорит ли Python с VBA вообще?
  3. После того, как я закончу обработку данных, легко ли вернуть их обратно в виде CSV, чтобы я мог открыть их в Excel для просмотра?

Ответы [ 4 ]

3 голосов
/ 27 июля 2010

Есть ли библиотека, которую я могу использовать, которая будет считывать CSV в матрицу, или я должен написать ее сам?

Модуль csv обрабатывает практически все, что вы могли захотеть.

вообще говорит ли Python с VBA?

Железный Питон может.

После того, как я закончу обработку данных, можно ли просто вернуть их в виде CSV, чтобы я мог открыть их в Excel для просмотра?

Модуль csv обрабатывает практически все, что вам нужно.

Предложение: Читать это: http://docs.python.org/library/csv.html

3 голосов
/ 27 июля 2010

Мне нравятся NumPy's loadtxt для такого рода вещей. Очень настраивается для чтения CSV. И savetxt для возврата после манипуляций. Или вы можете проверить встроенный модуль csv , если не хотите устанавливать что-то новое.

1 голос
/ 27 июля 2010

Если вы не хотите иметь дело с переходом от CSV туда и обратно, вы можете использовать win32com, который можно скачать здесь.http://python.net/crew/mhammond/win32/Downloads.html

1 голос
/ 27 июля 2010

Если мы говорим на Pythonish, почему бы не использовать http://www.python -excel.org / ?

Пример прочитанного файла:

import xlrd
rb = xlrd.open_workbook('file.xls',formatting_info=True)
sheet = rb.sheet_by_index(0)
for rownum in range(sheet.nrows):
  row = sheet.row_values(rownum)
  for c_el in row:
    print c_el

Запись новогоfile:

import xlwt
from datetime import datetime

font0 = xlwt.Font()
font0.name = 'Times New Roman'
font0.colour_index = 2
font0.bold = True

style0 = xlwt.XFStyle()
style0.font = font0

style1 = xlwt.XFStyle()
style1.num_format_str = 'D-MMM-YY'

wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')

ws.write(0, 0, 'Test', style0)
ws.write(1, 0, datetime.now(), style1)
ws.write(2, 0, 1)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))

wb.save('example.xls')

На странице есть и другие примеры.

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