Фрейм данных Pandas, имеющий дополнительный " слой"
Предположим, что у вас есть следующий фрейм данных:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.nan,columns=['A','B','C'],index=[0,1,2])
Предположим, мне нужен дополнительный "слой" поверх этого фрейма данных pandas, такой, что столбец A, строка 0 будет иметь свое значение, столбец B, строка 0 будет иметь другое значение, столбец C, строка 0 будет иметь что-то, столбец A, строка 1 и так далее. Таким образом, как фрейм данных поверх этого существующего.
Можно ли добавить другие слои? Как получить доступ к этим слоям? Является ли это эффективным, т. е. должен ли я просто использовать отдельный фрейм данных все вместе? И можно было бы сохранить эти несколько слоев в виде csv, получив доступ к отдельным слоям?, или есть функция, которая разбила бы их на разные листы в одной книге?
1 ответ:
pandas.DataFrameне может иметь 3 измерения :
DataFrameявляется2-мерной меченой структурой данных со столбцами потенциально различных типов.Однако есть способ подделать 3-измерения с помощью Многоиндексной / расширенной индексации :
Иерархическое индексирование (мультииндекс)
Иерархическая / многоуровневая индексация очень увлекательна, поскольку она открывает двери для некоторых довольно сложных данных. анализ и манипулирование, особенно для работы с высшими размерные данные. По сути, он позволяет хранить и манипулировать данные с произвольным числом измерений в младших размерных данных такие структуры, как Серии (1d) и фреймы данных (2d).Если вам действительно нужно это дополнительное измерение, идите с
pandas.Panel:
Panelявляется несколько менее используемым, но все же важным контейнером для 3-мерного данные.Но не пропустите этот важный отказ от ответственности из документов:
Примечание: К сожалению
Panel, используется реже, чемSeriesиDataFrame, был слегка пренебрежен в функциональном отношении. Ряд из них методы и опции, доступные вDataFrame, недоступны вPanel.Есть также
pandas.Panel4D(экспериментальный) в маловероятном случае, что вам это нужно.
Comments