«Большие данные» рабочие потоки с использованием панд

Я пытался найти ответ на этот вопрос в течение многих месяцев, изучая панд. Я использую SAS для своей повседневной работы, и это здорово!Поддержка вне ядра. Однако SAS ужасен как часть программного обеспечения по многим другим причинам.

Однажды я надеюсь заменить свое использование SAS на python и pandas, но в настоящее время мне не хватает неосновного рабочего процесса для больших наборов данных. Я'я не говорю обольшие данные" для этого требуется распределенная сеть, а скорее файлы, слишком большие для размещения в памяти, но достаточно малые для размещения на жестком диске.

Моя первая мысль заключается в использованииHDFStore хранить большие наборы данных на диске и извлекать только те фрагменты, которые мне нужны, в рамки данных для анализа. Другие упоминали MongoDB как более простую альтернативу. У меня вопрос такой:

Каковы лучшие рабочие процессы для достижения следующих целей:

Загрузка плоских файлов в постоянную структуру базы данных на дискеЗапрос этой базы данных для извлечения данных для подачи в структуру данных PandasОбновление базы данных после манипулирования частями в пандах

Примеры из реальной жизни будут высоко оценены, особенно от тех, кто использует панды на "большие данные ".

Редактировать - пример того, как я хотел бы, чтобы это работало:

Итеративный импорт большого плоского файла и сохранение его в постоянной структуре базы данных на диске. Эти файлы обычно слишком велики, чтобы поместиться в памяти.Чтобы использовать Панд, я хотел бы прочитать подмножества этих данных (обычно всего несколько столбцов за раз), которые могут поместиться в памяти.Я бы создал новые столбцы, выполняя различные операции с выбранными столбцами.Затем я должен был бы добавить эти новые столбцы в структуру базы данных.

Я пытаюсь найти наилучший способ выполнения этих шагов. Читая ссылки о пандах и таблицах, кажется, что добавление нового столбца может быть проблемой.

Редактировать - Отвечая Джеффуконкретно вопросы:

Я строю модели потребительского кредитного риска. Типы данных включают телефон, SSN и адресные характеристики; ценности имущества; уничижительная информация, такая как судимости, банкротства и т. д. Наборы данных, которые я использую каждый день, содержат в среднем от 1000 до 2000 полей смешанных типов данных: непрерывные, номинальные и порядковые переменные числовых и символьных данных. Я редко добавляю строки, но я выполняю много операций, которые создают новые столбцы.Типичные операции включают объединение нескольких столбцов с использованием условной логики в новый составной столбец. Например,if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B', Результатом этих операций является новый столбец для каждой записи в моем наборе данных.Наконец, я хотел бы добавить эти новые столбцы в структуру данных на диске. Я бы повторил шаг 2, изучая данные с помощью кросс-таблиц и описательной статистики, пытаясь найти интересные, интуитивно понятные связи для моделирования.Типичный файл проекта обычно составляет около 1 ГБ. Файлы организованы таким образом, что строка состоит из записи данных потребителя. Каждая строка имеет одинаковое количество столбцов для каждой записи. Это всегда будет так.Это'Довольно редко, когда я создаю новый столбец, я бы подставлял его по строкам. Тем не менее, это 'Для меня довольно распространено подмножество строк при создании отчетов или создании описательной статистики. Например, я мог бы хотеть создать простую частоту для определенной области бизнеса, скажем, Розничные кредитные карты. Для этого я бы выбрал только те записи, где бизнес = розничная торговля, в дополнение к тем столбцам, о которых я хочу сообщить. Однако при создании новых столбцов я извлекаю все строки данных и только те столбцы, которые мне нужны для операций.Процесс моделирования требует, чтобы я проанализировал каждый столбец, посмотрел на интересные отношения с некоторой переменной результата и создал новые составные столбцы, которые описывают эти отношения. Столбцы, которые я исследую, обычно делаются небольшими наборами. Например, я сконцентрируюсь на наборе, скажем, 20 столбцов, которые имеют дело только со значениями собственности, и посмотрю, как они относятся к дефолту по кредиту. После их изучения и создания новых столбцов я перехожу к другой группе столбцов, например, «Образование в колледже», и повторяю этот процесс. Что я'Я занимаюсь созданием переменных-кандидатов, которые объясняют связь между моими данными и некоторым результатом. В самом конце этого процесса я применяю некоторые методы обучения, которые создают уравнение из этих составных столбцов.

Редко когда я добавляю строки в набор данных. Я почти всегда буду создавать новые столбцы (переменные или функции в статистике / на языке машинного обучения).

Ответы на вопрос(13)

Ваш ответ на вопрос