使用for循环创建单独的数据框和绘图

时间:2017-07-04 08:00:49

标签: python

我试图自动创建数据透视表,这样我就可以同时创建多个数据透视表。我还想用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)       

任何人有任何提示吗?

1 个答案:

答案 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