А теперь момент истины:
>$ python bubbles1.py
>2014-03-11 19:46:36,806 DEBUG calling aggregate(rows)
>2014-03-11 19:46:36,807 INFO called aggregate(rows)
>2014-03-11 19:46:36,807 DEBUG calling pretty_print(records)
>+--+--+---+
>|animal··|hush_sum|record_count|
>+--+--+---+
>|duck····|······10 |···········1 |
>|weasel··|······50 |···········1 |
>|bear····|·····800 |···········2 |
>|elk·····|·····100 |···········1 |
>|marmoset|·····250 |···········1 |
>+--+--+---+
>2014-03-11 19:46:36,807 INFO called pretty_print(records)
Если вы прочитали документацию, то можете избежать вывода на экран строк с отладочной информацией и, возможно, изменить формат таблицы.
Сравнивая два примера, можно заметить, что пример с bubbles использовал один вызов функции (aggregate), чтобы заменить чтение и подсчет данных в формате CSV вручную. В зависимости от того, что вам нужно, инструментальные средства работы с данными могут сберечь вам много времени.
В более реалистичном примере наш файл может содержать тысячи строк (он становится опасным), в которых можно встретить опечатки вроде bare, запятые в числах и т. д. Чтобы найти хорошие примеры практических задач, связанных с данными, и их решений на Python и Java, обратитесь к книге Грега Уилсона (Greg Wilson) Data Crunching: Solve Everyday Problems Using Java, Python, and More (издательство Pragmatic Bookshelf).
Инструменты очистки данных могут сэкономить кучу времени, и Python имеет множество таких инструментов. Например, PETL (http://petl.readthedocs.org/) позволяет выполнять извлечение и переименование рядов и колонок. В приложении В рассматриваются особенно полезные инструменты для работы с данными: Pandas, NumPy и IPython. В дополнение к их широкой известности в научной среде они стали популярными инструментами среди разработчиков, работающих с финансами и данными. На конференции PyData в 2012 году компания AppData (http://bit.ly/py-big-data) рассматривала, как эти три и другие инструменты Python помогают обработать 15 Тбайт данных ежедневно. Это не опечатка — Python может обрабатывать очень большие объемы реальных данных.
Дополнительные источники информации
Иногда вам нужны данные, которые появляются где-то в другом месте. Рассмотрим некоторые источники данных из области бизнеса и правительственной информации.
• data.gov (https://www.data.gov/). Открывает доступ к тысячам наборов данных и инструментов. Его API созданы на основе CKAN, системы управления данными Python.
• Opening government with Python (http://sunlightfoundation.com/). Посмотрите видеоролики (http://bit.ly/opengov-py