我有一个空列表,我想用数据透视框填充,目的是在列表上循环使用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之后的所有列创建一个重塑/透视的数据帧。我想把一个列标题字符串传递给df.pivot()
的values
,类似于以下内容:
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_table()
代替df.pivot()
,但那会抛出一个KeyError
来代替'ele2'
。我有一种感觉,有一个更简单的方法来做这件事,并期待您的建议。提前感谢您的帮助
问题是您将pivot表向后分配到这一行:
df
。在下一次迭代中,它将尝试透视这个透视表,它没有y
-colun。如果您将pivot指定给df2
,然后将其附加到绘图列表中,它就像一个符咒:)在另一个音符上;我不知道你在策划什么,怎么策划,为什么策划,但我觉得可能有更直接的方法。如果你展示你的预期成果,我可以看看
相关问题 更多 >
编程相关推荐