Я новичок в Python, Pandas, Dash и т. Д. Я пытаюсь структурировать фрейм данных, чтобы я мог создать некоторые компоненты dash для построения графиков, которые позволят пользователю просматривать и фильтровать данные.
В верхней части находятся агрегационные характеристики, первые 3 являются обязательными, а остальные - разреженными в зависимости от того, были ли данные агрегированы для этой характеристики. После первых эллипсов существуют некоторые итоговые характеристики для дня, а после вторых эллипсов - данные временных рядов для агрегации. В этом примере насчитывается около 3800 предварительно рассчитанных групп агрегатов.
Стоит ли пытаться преобразовать совокупные характеристики в MultiIndex?
Runid - это идентификатор прогона анализа, который создал выходные данные (тот же номер для всех 3818 столбцов), в то время как поле UID должно быть уникальным для каждого столбца одного прогона, но несколько прогонов будут иметь один и тот же UID с разными RUNIDs. UID - это уникальная комбинация CHAR1-CHAR20 для этого RUNID и AGGLEVEL. AGGLEVEL - это группа анализа, которая может иметь один или несколько столбцов вывода. CHAR3_CHAR6_UNADJ - это уникальные комбинации CHAR3 и CHAR6, поэтому эти две строки заполняются, в то время как остальные строки CHAR равны нулю (хорошо NaN). Мой текущий пример - только один прогон, но есть десятки тысяч прогонов, хотя я обычно сосредотачиваюсь на одном в время и, вероятно, не будет иметь дело с более чем 10-20 за один раз для подмножества данных каждого. От Char1 до Char20 заполняются, только если в этом столбце есть данные, агрегированные по этой характеристике.
Пример моего фрейма данных:
print(dft)
0 ... 3818
UID 32 ... 19980
RUNID 1234 ... 1234
AGGLEVEL CHAR12_ADJ ... CHAR3_CHAR6_UNADJ
CHAR1 NaN ... NaN
CHAR2 NaN ... NaN
CHAR3 NaN ... 1234
CHAR4 NaN ... NaN
CHAR5 NaN ... NaN
CHAR6 NaN ... ABCD
CHAR7 NaN ... NaN
CHAR8 NaN ... NaN
CHAR9 NaN ... NaN
CHAR10 NaN ... NaN
CHAR11 NaN ... NaN
CHAR12 IJKL ... NaN
CHAR13 NaN ... NaN
CHAR14 NaN ... NaN
CHAR15 NaN ... NaN
CHAR16 NaN ... NaN
CHAR17 NaN ... NaN
CHAR18 NaN ... NaN
CHAR19 NaN ... NaN
CHAR20 NaN ... NaN
...
STARTTIME 2018-08-22 00:00:00 ... 2018-08-22 00:00:00
MAXIMUM 2.676 ... 0.654993
MINIMUM 0.8868 ... 0.258181
...
00:00 1.2288 ... 0.335217
01:00 1.2828 ... 0.337848
02:00 1.2876 ... 0.324639
03:00 1.194 ... 0.314569
04:00 1.2876 ... 0.258181
05:00 1.1256 ... 0.284699
06:00 1.4016 ... 0.364655
07:00 1.122 ... 0.388968
08:00 1.0188 ... 0.452711
09:00 1.008 ... 0.507032
10:00 1.0272 ... 0.546807
11:00 0.972 ... 0.605359
12:00 1.062 ... 0.641152
13:00 0.8868 ... 0.625082
14:00 1.1076 ... 0.623865
15:00 0.9528 ... 0.654993
16:00 1.014 ... 0.645511
17:00 2.676 ... 0.62638
18:00 0.9888 ... 0.551629
19:00 1.038 ... 0.518322
20:00 1.2528 ... 0.50793
21:00 1.08 ... 0.456993
22:00 1.1724 ... 0.387063
23:00 1.1736 ... 0.345045
[62 rows x 3819 columns]