我试图自动创建数据透视表,这样我就可以同时创建多个数据透视表。我还想用sns.heatmap()
图来绘制这些图。
到目前为止,我的代码在技术上有效,但我被迫使用print
命令,因此数据不会出现在数据框中,并且生成的图形非常难以理解。
for i in list(df):
y = pd.pivot_table(df, index = df[i], values=vector)
print(y)
这并没有为循环的每个循环提供单个数据帧的所需结果。
如果我用代码绘制图表:
for i in list(df):
y = pd.pivot_table(df, index = df[i], values=vector)
sns.heatmap(y, annot=True)
我将所有的表格分成一个长长的表格,其中包含n个不同的热图传说。
我尝试使用词典来解决这个问题,但我不认为这是最好的方法(但我知道什么?)
d={}
for i in list(df):
d[i] = pd.pivot_table(df, index = df[i], values=vector)
任何人有任何提示吗?
答案 0 :(得分:0)
如果你想迭代一个DataFrame,for i in list(df)
就不行了。
正如您自己所建议的那样,将结果保存在字典中是最简单的方法。并使用绘图分割生成
d = {col_name: pd.pivot_table(df, index=col, values=vecor) for col_name, col in df.iteritems()}
然后绘图可以循环结果,并进行绘图
for column_name, pivot_results in d:
# plotting