2016-10-19 4 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 파일에 저장됩니다.

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' 

방법 : 내가 코드를 실행하면

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  

, 나는 다음과 같은 오류를 받고 있어요 : 각 행은 소비자 Transaction.The 일반적으로 바구니 시장 분석에 의해 연결되어 제품의 순서를 나타냅니다 이 문제를 해결할 수 있습니까?

감사합니다.

+1

@ZachS. 귀하의 답변에 많은 감사드립니다. 나는 당신의 상태로 노력하지만 여전히 같은 오류가 있습니다 : ( –

+0

시도해 봤니? df = data1 [freqMap] .T.fillna (0) –

+0

얻으려는 결과는 무엇입니까? –

답변

2

csv 파일을 읽었지만 헤더가없고 구분 기호는 쉼표가 아닌 공백이며 가변 개수의 열이 있습니다. 따라서 첫 번째 줄에는 세 가지 실수가 있습니다.

data1은 DataFrame이고 freqMap은 완전히 관련없는 사전입니다. 따라서 데이터 1 [freqMap]을 수행하는 것은 의미가 없습니다.

이 줄을 jupyter 또는 python 인터프리터에서 단계별로 살펴 보시기 바랍니다. 그러면 각 줄이 실제로 무엇을하는지, 실험 하는지를 볼 수 있습니다.

관련 문제