2016-10-19 35 views
1

PycharmでPythonを使用してヒートマップを作成しようとしています。私はこのコードを持っています:'DataFrame'オブジェクトは呼び出し可能ではありません

import numpy as np 
import pandas as pd 
import matplotlib 
matplotlib.use('agg') 
import matplotlib.pyplot as plt 

data1 = pd.read_csv(FILE") 

freqMap = {} 
for line in data1: 
    for item in line: 
    if not item in freqMap: 
     freqMap[item] = {} 

    for other_item in line: 
     if not other_item in freqMap: 
     freqMap[other_item] = {} 

     freqMap[item][other_item] = freqMap[item].get(other_item, 0) + 1 
     freqMap[other_item][item] = freqMap[other_item].get(item, 0) + 1 

df = data1[freqMap].T.fillna(0) 
print(df) 

私のデータはCSVファイルに保存されています。各行は通常、バスケット市場分析消費者Transaction.Theによって関連している製品のシーケンスを表します。私は、コードを実行すると

99 32 35 45 56 58 7 72 
99 45 51 56 58 62 72 17 
55 56 58 62 21 99 35 
21 99 44 56 58 7 72 
72 17 99 35 45 56 7 
56 62 72 21 91 99 35 
99 35 55 56 58 62 72 
99 35 51 55 58 7 21 
99 56 58 62 72 21  
55 56 58 21 99 35  
99 35 62 7 17 21  
62 72 21 99 35 58  
56 62 72 99 32 35  
72 17 99 55 56 58  

、私は次のエラーを取得しています:

Traceback (most recent call last): 
    File "C:/Users/tst/PycharmProjects/untitled1/tes.py", line 22, in <module> 
    df = data1[freqMap].T.fillna(0) 
    File "C:\Users\tst\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\frame.py", line 1997, in __getitem__ 
    return self._getitem_column(key) 
    File "C:\Users\tst\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2004, in _getitem_column 
    return self._get_item_cache(key) 
    File "C:\Users\tst\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\generic.py", line 1348, in _get_item_cache 
    res = cache.get(item) 
TypeError: unhashable type: 'dict' 

方法この問題を解決できますか?

多くの感謝!

+1

@ZachS。あなたのお返事に感謝します。私はあなたの文章で試してみますが、私はまだ同じエラーがあります:( –

+0

あなたは試しましたか?df = data1 [freqMap] .T.fillna(0) –

+0

取得しようとしている出力は何ですか? –

答えて

2

csvファイルを読み込んでいますが、ヘッダーはなく、区切り文字はカンマではないスペースで、可変数の列があります。それはあなたの最初の行に3つの間違いです。

data1はDataFrameであり、freqMapは完全に無関係の辞書です。したがって、data1 [freqMap]を実行するのは意味がありません。

jupyterまたはpythonインタープリタでこの行を1行ずつ進めることをお勧めします。それで、各行が実際に何をしているのかを見ることができます。

関連する問題