У меня есть файл csv, импортированный в dataframe pandas. Вероятно, это произошло из экспорта базы данных, который объединял таблицу «один ко многим родителям и деталями». Формат файла CSV выглядит следующим образом:синтаксический анализ CSV в pandas dataframes (один-ко-многим unmunge)
header1, header2, header3, header4, header5, header6
sample1, property1,,,average1,average2
,,detail1,detail2,,
,,detail1,detail2,,
,,detail1,detail2,,
sample2, ...
,,detail1,detail2,,
,,detail1,detail2,,
...
(т.е. line 0
является header
, line 1
является record 1
, lines 2
через n
являются детали, линия п + 1 является запись 2 и так далее ...)
Каков наилучший способ извлечения (перенормировать?) Детали в отдельные DataFrames
, на которые можно ссылаться, используя значения в записях sample#
? Количество каждого подмножества деталей различно для каждого образца.
можно использовать:
samplelist = df.header2[pd.notnull(df.header2)]
, чтобы получить начальный индекс каждого образца, так что я могу захватить samplelist.index [0] для samplelist.index [1] и положить его в меньшем dataframe. Подробные записи сами по себе не имеют ссылки на какой образец, из которого они пришли, поэтому это должно быть выведено из порядка файла csv (обратите внимание, что в моем примере нет пересечения заполненных/пустых полей).
Должен ли я составлять список фреймов данных, спецификацию данных или панель данных?
Могу ли я каким-то образом создавать переменные из полей записи sample1 и каким-то образом присоединять их к каждому файлу данных, который имеет только подробные записи (например, совокупность объектов, которые имеют несколько скалярных элементов и один фрейм данных каждый)?
В конце концов я создам статистические данные по каждой группе подробных записей и нарисую их на значения в образцах образцов (например, sampletype, день или дата и т. Д. Против мистика). Я создам промежуточные серии, которые также будут прикреплены к группировке образцов, например, с оценкой плотности ядра PDF или гистограммой.
Спасибо.
Ваш пример позволяет мне получить в моих данных легко. Вперед заполнение было очень полезно. У меня есть ваш пример работы, только теперь каждый проход цикла 'for' должен сохранять' sample' и 'data' в некоторый новый объект. Я надеялся на два новых фрейма. Это просто потому, что я привык думать о таблицах SQL. Я все еще обдумываю, как эффективно использовать объект groupby. –