import pandas
from pandas.tools.plotting import scatter_matrix
import matplotlib.pyplot as plt
from sklearn import model_selection
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
# Load dataset
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/yeast/yeast.data"
names = ['Sequence Name','mcg', 'gvh', 'alm', 'mit', 'erl','pox','vac','nuc']
dataset = pandas.read_csv(url, names=names)
# shape
print(dataset.shape)
# head
print(dataset.head(20))
# descriptions
print(dataset.describe())
# class distribution
print(dataset.groupby('').size())
# box and whisker plots
dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
plt.show()
# histograms
dataset.hist()
plt.show()
# scatter plot matrix
scatter_matrix(dataset)
plt.show()
这就是错误:
Sequence Name mcg gvh alm mit \
0 ADT1_YEAST 0.58 0.61 0.47 0.13 0.50 0.00... NaN NaN NaN NaN
1 ADT2_YEAST 0.43 0.67 0.48 0.27 0.50 0.00... NaN NaN NaN NaN
2 ADT3_YEAST 0.64 0.62 0.49 0.15 0.50 0.00... NaN NaN NaN NaN
3 AAR2_YEAST 0.58 0.44 0.57 0.13 0.50 0.00... NaN NaN NaN NaN
4 AATM_YEAST 0.42 0.44 0.48 0.54 0.50 0.00... NaN NaN NaN NaN
5 AATC_YEAST 0.51 0.40 0.56 0.17 0.50 0.50... NaN NaN NaN NaN
6 ABC1_YEAST 0.50 0.54 0.48 0.65 0.50 0.00... NaN NaN NaN NaN
7 BAF1_YEAST 0.48 0.45 0.59 0.20 0.50 0.00... NaN NaN NaN NaN
8 ABF2_YEAST 0.55 0.50 0.66 0.36 0.50 0.00... NaN NaN NaN NaN
9 ABP1_YEAST 0.40 0.39 0.60 0.15 0.50 0.00... NaN NaN NaN NaN
10 ACE1_YEAST 0.43 0.39 0.54 0.21 0.50 0.00... NaN NaN NaN NaN
11 ACE2_YEAST 0.42 0.37 0.59 0.20 0.50 0.00... NaN NaN NaN NaN
12 ACH1_YEAST 0.40 0.42 0.57 0.35 0.50 0.00... NaN NaN NaN NaN
13 ACON_YEAST 0.60 0.40 0.52 0.46 0.50 0.00... NaN NaN NaN NaN
14 ACR1_YEAST 0.66 0.55 0.45 0.19 0.50 0.00... NaN NaN NaN NaN
15 ACT_YEAST 0.46 0.44 0.52 0.11 0.50 0.00... NaN NaN NaN NaN
16 ACT2_YEAST 0.47 0.39 0.50 0.11 0.50 0.00... NaN NaN NaN NaN
17 ACT3_YEAST 0.58 0.47 0.54 0.11 0.50 0.00... NaN NaN NaN NaN
18 ACT5_YEAST 0.50 0.34 0.55 0.21 0.50 0.00... NaN NaN NaN NaN
19 ADA2_YEAST 0.61 0.60 0.55 0.21 0.50 0.00... NaN NaN NaN NaN
erl pox vac nuc
0 NaN NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN NaN NaN NaN
4 NaN NaN NaN NaN
5 NaN NaN NaN NaN
6 NaN NaN NaN NaN
7 NaN NaN NaN NaN
8 NaN NaN NaN NaN
9 NaN NaN NaN NaN
10 NaN NaN NaN NaN
11 NaN NaN NaN NaN
12 NaN NaN NaN NaN
13 NaN NaN NaN NaN
14 NaN NaN NaN NaN
15 NaN NaN NaN NaN
16 NaN NaN NaN NaN
17 NaN NaN NaN NaN
18 NaN NaN NaN NaN
19 NaN NaN NaN NaN
mcg gvh alm mit erl pox vac nuc
count 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
mean NaN NaN NaN NaN NaN NaN NaN NaN
std NaN NaN NaN NaN NaN NaN NaN NaN
min NaN NaN NaN NaN NaN NaN NaN NaN
25% NaN NaN NaN NaN NaN NaN NaN NaN
50% NaN NaN NaN NaN NaN NaN NaN NaN
75% NaN NaN NaN NaN NaN NaN NaN NaN
max NaN NaN NaN NaN NaN NaN NaN NaN
Traceback (most recent call last):
File "<ipython-input-28-633123d66170>", line 35, in <module>
print(dataset.groupby('').size())
问题是Yeast.data不是逗号分隔。现在我有一个逗号分隔的训练数据,但不是.csv格式,而是纯文本文档,我不能用Excel打开它。我怎么样用熊猫读它?
答案 0 :(得分:0)
分隔符/分隔符参数的默认值为pd.read_csv中的,
,因此您必须明确设置它:
In [6]: dataset = pd.read_csv(url, names=names, delim_whitespace=True)
In [7]: dataset
Out[7]:
Sequence Name mcg gvh alm mit erl pox vac nuc
ADT1_YEAST 0.58 0.61 0.47 0.13 0.5 0.0 0.48 0.22 MIT
ADT2_YEAST 0.43 0.67 0.48 0.27 0.5 0.0 0.53 0.22 MIT
ADT3_YEAST 0.64 0.62 0.49 0.15 0.5 0.0 0.53 0.22 MIT
AAR2_YEAST 0.58 0.44 0.57 0.13 0.5 0.0 0.54 0.22 NUC
AATM_YEAST 0.42 0.44 0.48 0.54 0.5 0.0 0.48 0.22 MIT
AATC_YEAST 0.51 0.40 0.56 0.17 0.5 0.5 0.49 0.22 CYT
ABC1_YEAST 0.50 0.54 0.48 0.65 0.5 0.0 0.53 0.22 MIT
BAF1_YEAST 0.48 0.45 0.59 0.20 0.5 0.0 0.58 0.34 NUC
ABF2_YEAST 0.55 0.50 0.66 0.36 0.5 0.0 0.49 0.22 MIT
ABP1_YEAST 0.40 0.39 0.60 0.15 0.5 0.0 0.58 0.30 CYT
... ... ... ... ... ... ... ... ... ...
YP52_YEAST 0.48 0.61 0.57 0.17 0.5 0.0 0.45 0.22 CYT
YP53_YEAST 0.71 0.50 0.50 0.18 0.5 0.0 0.46 0.22 CYT
YPT7_YEAST 0.61 0.48 0.54 0.25 0.5 0.0 0.50 0.22 CYT
R29A_YEAST 0.38 0.32 0.64 0.41 0.5 0.0 0.44 0.11 CYT
R29B_YEAST 0.38 0.40 0.66 0.35 0.5 0.0 0.43 0.11 CYT
YUR1_YEAST 0.81 0.62 0.43 0.17 0.5 0.0 0.53 0.22 ME2
ZIP1_YEAST 0.47 0.43 0.61 0.40 0.5 0.0 0.48 0.47 NUC
ZNRP_YEAST 0.67 0.57 0.36 0.19 0.5 0.0 0.56 0.22 ME2
ZUO1_YEAST 0.43 0.40 0.60 0.16 0.5 0.0 0.53 0.39 NUC
G6PD_YEAST 0.65 0.54 0.54 0.13 0.5 0.0 0.53 0.22 CYT
[1484 rows x 9 columns]
或者您可以使用pd.read_fwf()方法:
In [8]: dataset = pd.read_fwf(url, names=names)
In [9]: dataset
Out[9]:
Sequence Name mcg gvh alm mit erl pox vac nuc
ADT1_YEAST 0.58 0.61 0.47 0.13 0.5 0.0 0.48 0.22 MIT
ADT2_YEAST 0.43 0.67 0.48 0.27 0.5 0.0 0.53 0.22 MIT
ADT3_YEAST 0.64 0.62 0.49 0.15 0.5 0.0 0.53 0.22 MIT
AAR2_YEAST 0.58 0.44 0.57 0.13 0.5 0.0 0.54 0.22 NUC
AATM_YEAST 0.42 0.44 0.48 0.54 0.5 0.0 0.48 0.22 MIT
AATC_YEAST 0.51 0.40 0.56 0.17 0.5 0.5 0.49 0.22 CYT
ABC1_YEAST 0.50 0.54 0.48 0.65 0.5 0.0 0.53 0.22 MIT
BAF1_YEAST 0.48 0.45 0.59 0.20 0.5 0.0 0.58 0.34 NUC
ABF2_YEAST 0.55 0.50 0.66 0.36 0.5 0.0 0.49 0.22 MIT
ABP1_YEAST 0.40 0.39 0.60 0.15 0.5 0.0 0.58 0.30 CYT
... ... ... ... ... ... ... ... ... ...
YP52_YEAST 0.48 0.61 0.57 0.17 0.5 0.0 0.45 0.22 CYT
YP53_YEAST 0.71 0.50 0.50 0.18 0.5 0.0 0.46 0.22 CYT
YPT7_YEAST 0.61 0.48 0.54 0.25 0.5 0.0 0.50 0.22 CYT
R29A_YEAST 0.38 0.32 0.64 0.41 0.5 0.0 0.44 0.11 CYT
R29B_YEAST 0.38 0.40 0.66 0.35 0.5 0.0 0.43 0.11 CYT
YUR1_YEAST 0.81 0.62 0.43 0.17 0.5 0.0 0.53 0.22 ME2
ZIP1_YEAST 0.47 0.43 0.61 0.40 0.5 0.0 0.48 0.47 NUC
ZNRP_YEAST 0.67 0.57 0.36 0.19 0.5 0.0 0.56 0.22 ME2
ZUO1_YEAST 0.43 0.40 0.60 0.16 0.5 0.0 0.53 0.39 NUC
G6PD_YEAST 0.65 0.54 0.54 0.13 0.5 0.0 0.53 0.22 CYT
[1484 rows x 9 columns]