Frage

Here's a simple code as in this link to read an arff file in python (the commented one didn't work too):

import arff
for row in arff.load('heart_train.arff'):
        print(row.sex)  

And here's the error I receive:

python id3.py 
Traceback (most recent call last):
  File "id3.py", line 1, in <module>
    import arff
ImportError: No module named arff

"heart_train" arff file data is like:

@relation cleveland-14-heart-disease
@attribute 'age' real
@attribute 'sex' { female, male}
@attribute 'cp' { typ_angina, asympt, non_anginal, atyp_angina}
@attribute 'trestbps' real
@attribute 'chol' real
@attribute 'fbs' { t, f}
@attribute 'restecg' { left_vent_hyper, normal, st_t_wave_abnormality}
@attribute 'thalach' real
@attribute 'exang' { no, yes}
@attribute 'oldpeak' real
@attribute 'slope' { up, flat, down}
@attribute 'ca' real
@attribute 'thal' { fixed_defect, normal, reversable_defect}
@attribute 'class' { negative, positive}
@data
63,male,typ_angina,145,233,t,left_vent_hyper,150,no,2.3,down,0,fixed_defect,negative
37,male,non_anginal,130,250,f,normal,187,no,3.5,down,0,normal,negative
41,female,atyp_angina,130,204,f,left_vent_hyper,172,no,1.4,up,0,normal,negative
56,male,atyp_angina,120,236,f,normal,178,no,0.8,up,0,normal,negative
57,female,asympt,120,354,f,normal,163,yes,0.6,up,0,normal,negative
57,male,asympt,140,192,f,normal,148,no,0.4,flat,0,fixed_defect,negative
...
War es hilfreich?

Lösung

You should rename your script from arff.py to something different, arfftest.py for example. Python cant import arff module you need because name of it is the same as your app file name.

And if you havent installed arff package itself, install it with pip or easy_install:

pip install arff
# or easy_install arff
# or pypm install arff

Andere Tipps

After I change your, arff file it works:

NB: I removed the single code from the second column of the attribute.

Here is the arff file:

@relation cleveland-14-heart-disease
@attribute age real
@attribute sex { female, male}
@attribute cp { typ_angina, asympt, non_anginal, atyp_angina}
@attribute trestbps real
@attribute chol real
@attribute fbs { t, f}
@attribute restecg { left_vent_hyper, normal, st_t_wave_abnormality}
@attribute thalach real
@attribute exang { no, yes}
@attribute oldpeak real
@attribute slope { up, flat, down}
@attribute ca real
@attribute thal { fixed_defect, normal, reversable_defect}
@attribute class { negative, positive}
@data
63,male,typ_angina,145,233,t,left_vent_hyper,150,no,2.3,down,0,fixed_defect,negative
37,male,non_anginal,130,250,f,normal,187,no,3.5,down,0,normal,negative
41,female,atyp_angina,130,204,f,left_vent_hyper,172,no,1.4,up,0,normal,negative
56,male,atyp_angina,120,236,f,normal,178,no,0.8,up,0,normal,negative
57,female,asympt,120,354,f,normal,163,yes,0.6,up,0,normal,negative
57,male,asympt,140,192,f,normal,148,no,0.4,flat,0,fixed_defect,negative

Snippet and output:

:/tmp:~ cat a.py
import arff
for row in arff.load('heart_train.arff'):
   print(row.sex)
:/tmp:~ python a.py
male
male
female
male
female
male
:/tmp:~
male
:/tmp:~
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top