У меня есть пустой список, который я хочу заполнить поворотными фреймами данных с целью циклического перемещения по списку для создания тепловых карт с использованием seaborn.
Исходные кадры данных выглядят примерно так:
x y ds_ic ele1 ele2 ele3 ele4
0 0 0.394888 18.8099 25.468 7.03E-15 0.417225
0 1 0.3990888 20.5525 23.54 0 0.331358
0 2 0.3901616 22.6762 19.5485 3.63E-11 0.448073
0 3 0.3838604 24.4072 27.781 0 0.406801
0 4 0.387536 21.6036 23.8371 0 0.263638
0 5 0.387536 23.4229 22.542 4.30E-14 0.395689
Я использую следующий код, чтобы изменить данные и сделать их пригодными для построения графиков:
def mapShape(dataframe_list):
plotList = []
for df in dataframe_list:
df = df.pivot(index = 'y', columns = 'x', values = 'ds_ic')
plotList.append(df)
return plotList
shaped_dataframes = mapShape(simplified_dataframes)
Где simplified_dataframes
- список фреймов данных, имеющих ту же форму, что и исходный фрейм данных. Это прекрасно работает для поворота одного столбца по моему выбору (то есть всякий раз, когда я вручную устанавливаю values
).
Цель состоит в том, чтобы создать измененный / развернутый кадр данных для всех столбцов после x-y. Я думал о передаче строки заголовка столбца в values
из df.pivot()
, что-то вроде следующего:
columns = ['ds_ic', 'ele1', 'ele2', 'ele3', 'ele4']
def mapShape(dataframe_list):
plotList = []
for df in dataframe_list:
for c in columns:
df = df.pivot(index = 'y', columns = 'x', values = c)
plotList.append(df)
return plotList
shaped_dataframes = mapShape(simplified_dataframes)
Когда я пытаюсь это сделать, df.pivot()
выдает KeyError
для 'y'
. Я попытался заменить df.pivot()
на df.pivot_table()
, но это выдает KeyError
для 'ele2'
. У меня есть ощущение, что есть более простой способ сделать это, и жду ваших предложений. Заранее спасибо за помощь!