Чтение и запись файлов CSV в структуру данных, подходящую для работы со столбцами / строками в стиле Excel

Так что в настоящее время я работаю над веб-приложением с несколькими другими людьми для клиента, и мы столкнулись с камнем преткновения. По сути, мы должны иметь возможность загружать CSV-файл в определенной компоновке — и приложение возьмет этот CSV-файл и на основе определенных столбцов и их значений выполнит требуемый алгоритм и вычисления.

Выход также будет загружаемый файл CSV. Никто из нас не имел опыта работы с CSV в Python.

Структура файла CSV выглядит следующим образом:
ID, имя, адрес, пригород, почтовый индекс, электронная почта, телефон

Мне нужно взять поля адреса и использовать их в расчете, чтобы определить, как добраться до места назначения по их конкретному адресу. Я также должен был бы напечатать определенные детали, связанные с этим человеком также.

РЕДАКТИРОВАТЬ
Итак, в основном, файл CSV будет содержать подробную информацию о сотрудниках и их соответствующую личную информацию. Наше приложение использует эту информацию и, основываясь на адресе сотрудников, прогнозирует наиболее оптимальный маршрут для них, чтобы добраться до пункта назначения.
В основном, как, черт возьми, я читаю CSV-файлы, а затем пишу алгоритм на основе определенного столбца / строки, чтобы выполнить необходимые вычисления.

0

Решение

Чтение .csv легко с CSV модуль стандартной библиотеки.

Более эффективная библиотека, которая позволяет лучше манипулировать .csv файлы панд, Вы должны сначала поиграть с этим.

Например, учитывая файл CSV:

csv = r"""col1,col2,col3,col4
bar,20150301,homer,53
foo,20150502,bart,102
barfoo,20150201,lisa,13
foobar,20150501,marge,97"""

Мы можем работать над этим с csv модуль:

import csv # built-in no need to install
from StringIO import StringIO

with open(StringIO(csv), 'rb') as f:
reader = csv.reader(f)
for row in reader:
# Do whatever you need

И, аналогично, с пандами:

import pandas as pnd # external, installation required

# returns a dataframe, specify cols, index et cetera
df = pnd.read_csv(StringIO(csv),
header=0,
index_col=["col1", "col3"],
usecols=["col1", "col2", "col3"],
parse_dates=["col2"])

# do dirty things with it.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]