Я хотел бы сохранить сводку локального набора DataFrames в «мета-кадре», используя pd.MultiIndex
.
По сути, ось строки имеет два уровня, а также ось столбца. В классе, управляющем набором DataFrames, я определяю в качестве переменной класса этот «метаданный фрейм».
import pandas as pd
row_axis = pd.MultiIndex(levels=[[],[]], codes=[[],[]], names=['Data', 'Period'])
column_axis = pd.MultiIndex(levels=[[],[]], codes=[[],[]], names=['Data', 'Extrema'])
MD = pd.DataFrame(index=row_axis, columns=column_axis)
Кажется, что он работает.
MD.index
>>> MultiIndex([], names=['Data', 'Period'])
MD.columns
>>> MultiIndex([], names=['Data', 'Extrema'])
Теперь каждый раз, когда я обрабатываю отдельный DataFrame id
, я хочу обновить этот "Meta DataFrame" соответственно. id
имеет DateTimeIndex с периодом '5m'.
id.index[0]
>>> Timestamp('2020-01-01 08:00:00')
id.index[-1]
>>> Timestamp('2020-01-02 08:00:00')
Я хочу сохранить в MD его первые и последние значения индекса, например.
MD.loc[[('id', '5m')],[('Timestamp', 'First')]] = id.index[0]
MD.loc[[('id', '5m')],[('Timestamp', 'Last')]] = id.index[-1]
Это не работает , Я получаю следующее сообщение об ошибке:
TypeError: unhashable type: 'list'
В конце я хотел бы получить в MD следующий тип информации (у меня есть другие id
DataFrames с разными периодами):
Timestamp
First Last
id 5m 2020-01-01 08:00:00 2020-01-02 08:00:00
10m 2020-01-05 08:00:00 2020-01-06 18:00:00
В конечном итоге я также сохраню минимальные и максимальные значения некоторых столбцов в id
. Например, если id
имеет столбец «Температура».
Timestamp Temperature
First Last Min Max
id 5m 2020-01-01 08:00:00 2020-01-02 08:00:00 -2.5 10
10m 2020-01-05 08:00:00 2020-01-06 18:00:00 4 15
Эти значения будут записаны при записи id
.
Я знаю, что инициализация ячейки DataFrame для каждой ячейки не экономит время, но это не будет делаться так часто.
Кроме того, я не понимаю, как я могу управлять этой организацией информации в Dict, поэтому я рассматриваю возможность сделать это с несколькими Уровень DataFrame. Затем я сохраню его в файле csv для хранения этих «метаданных».
Пожалуйста, как правильно инициализировать каждое из этих значений в MD?
Я благодарю вас за вашу Помогите! Bests,