2017-07-04 10 views
0

ピボットテーブルの作成を自動化しようとしているので、複数のピボットテーブルを同時に作成できます。私はまたsns.heatmap()プロットでこれらをグラフ化したいと思います。forループを使用して別のデータフレームとプロットを作成する

私はこれまでのところ技術的には動作していますが、データがデータフレームに出てこないように、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個の異なるヒートマップの伝説を持つ一つの長いものにmushed得ます。

私はこの問題を回避するために辞書を使用してみましたが、私はこれが最善の方法だとは思わない(しかし、私は何を知っていますか?)

d={} 
for i in list(df): 
    d[i] = pd.pivot_table(df, index = df[i], values=vector)  

いずれかが任意のヒントを持っていますか?

+0

は、ここでは、コードのインデントをチェックします。それは一致しません。 –

+0

ベクトルは何ですか –

+0

@MaartenFabréベクトルは、ピボットテーブル形式で分析されるKPIを表す列名のベクトルです。 –

答えて

0

DataFrameを反復処理する場合は、for i in list(df)の方法はありません。

あなた自身が提案したように、結果をdictに保存するのが最も簡単です。そして、プロット

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 
関連する問題