Рабочие процессы «больших данных» с использованием панд

| | | | | | | | |

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

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

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

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

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

Примеры из реального мира будут высоко оценены , особенно от тех, кто использует pandas для «больших данных».

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

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

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

Правка. Отвечая конкретно на вопросы Джеффа:

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

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

Рабочие процессы «больших данных» с использованием панд __del__: Questions

Рабочие процессы «больших данных» с использованием панд _files: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method