У меня есть файл csv, импортированный в кадр данных pandas. Вероятно, это произошло из-за экспорта базы данных, в котором объединены родительская и подробная таблицы «один ко многим». Формат CSV-файла следующий:
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
— детали, строка n+1 — это запись 2 и т. д....)
Каков наилучший способ выделить (перенормировать?) детали в отдельные DataFrames
, на которые можно ссылаться, используя значения в sample#
записях? Количество каждого подмножества деталей различно для каждого образца.
Я могу использовать:
samplelist = df.header2[pd.notnull(df.header2)]
чтобы получить начальный индекс каждого образца, чтобы я мог получить от samplelist.index[0] до samplelist.index[1] и поместить его в меньший фрейм данных. Подробные записи сами по себе не имеют ссылки на образец, из которого они были получены, поэтому это должно быть выведено из порядка файла csv (обратите внимание, что в моем примере нет пересечения заполненных/пустых полей).
Должен ли я составить список фреймов данных, список фреймов данных или панель фреймов данных?
Могу ли я каким-то образом создать переменные из полей записи sample1 и каким-то образом прикрепить их к каждому фрейму данных, который имеет только подробные записи (например, набор объектов, которые имеют несколько скалярных членов и один фрейм данных каждый)?
В конце концов я создам статистику по данным из каждой группы подробных записей и нанесу их на график относительно значений в выборочных записях (например, тип выборки, день или дата и т. д. по сравнению с моей статистикой). Я создам промежуточные ряды, которые также будут прикреплены к группе образцов, например PDF-файл оценки плотности ядра или гистограмма.
Спасибо.