Python 如何使用Scikit读取.txt文件

Python 如何使用Scikit读取.txt文件,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,这就是错误: 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.metr

这就是错误:

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()
序列名mcg gvh alm mit\ 0 ADT1_酵母0.58 0.61 0.47 0.13 0.50 0.00。。。楠楠楠楠楠楠 1 ADT2_酵母0.43 0.67 0.48 0.27 0.50 0.00。。。楠楠楠楠楠楠 2 ADT3_酵母0.64 0.62 0.49 0.15 0.50 0.00。。。楠楠楠楠楠楠 3 AAR2_酵母0.58 0.44 0.57 0.13 0.50 0.00。。。楠楠楠楠楠楠 4 AATM_酵母0.42 0.44 0.48 0.54 0.50 0.00。。。楠楠楠楠楠楠 5 AATC_酵母0.51 0.40 0.56 0.17 0.50 0.50。。。楠楠楠楠楠楠 6 ABC1_酵母0.50 0.54 0.48 0.65 0.50 0.00。。。楠楠楠楠楠楠 7 BAF1_酵母0.48 0.45 0.59 0.20 0.50 0.00。。。楠楠楠楠楠楠 8 ABF2_酵母0.55 0.50 0.66 0.36 0.50 0.00。。。楠楠楠楠楠楠 9 ABP1_酵母0.40 0.39 0.60 0.15 0.50 0.00。。。楠楠楠楠楠楠 10 ACE1_酵母0.43 0.39 0.54 0.21 0.50 0.00。。。楠楠楠楠楠楠 11 ACE2_酵母0.42 0.37 0.59 0.20 0.50 0.00。。。楠楠楠楠楠楠 12 ACH1_酵母0.40 0.42 0.57 0.35 0.50 0.00。。。楠楠楠楠楠楠 13乌头酵母0.60 0.40 0.52 0.46 0.50 0.00。。。楠楠楠楠楠楠 14 ACR1_酵母0.66 0.55 0.45 0.19 0.50 0.00。。。楠楠楠楠楠楠 15 ACT_酵母0.46 0.44 0.52 0.11 0.50 0.00。。。楠楠楠楠楠楠 16 ACT2_酵母0.47 0.39 0.50 0.11 0.50 0.00。。。楠楠楠楠楠楠 17 ACT3_酵母0.58 0.47 0.54 0.11 0.50 0.00。。。楠楠楠楠楠楠 18 ACT5_酵母0.50 0.34 0.55 0.21 0.50 0.00。。。楠楠楠楠楠楠 19 ADA2_酵母0.61 0.60 0.55 0.21 0.50 0.00。。。楠楠楠楠楠楠 erl痘病毒 0楠楠楠楠楠 1楠楠楠楠楠 2楠楠楠楠楠 3楠楠楠楠楠 4楠楠楠楠 5楠楠楠楠 6楠楠楠楠楠 7楠楠楠楠 8楠楠楠楠 9楠楠楠楠 10楠楠楠楠 11楠楠楠楠 12楠楠楠楠楠 13楠楠楠楠 14楠楠楠楠 15楠楠楠楠 16楠楠楠楠 17楠楠楠楠 18楠楠楠楠 19楠楠楠楠 mcg gvh alm mit erl pox vac nuc 计数0.0.0.0.0.0.0.0.0.0.0.0 平均楠楠楠楠楠楠楠楠楠楠楠楠楠 标准楠楠楠楠楠楠楠楠楠 闽南南 25%楠楠 50%楠楠 75%楠楠 马克斯南南南南 回溯(最近一次呼叫最后一次): 文件“”,第35行,在 打印(数据集.groupby(“”).size())
问题是Yeast.data不是逗号分隔的。现在我有一个培训数据,它是逗号分隔的,但不是.csv格式,而是纯文本文档,我无法用Excel打开它。如何使用Pandas读取它?

分隔符/分隔符参数的默认值是
in,因此您必须显式设置它:

                                       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())
或者,您可以使用以下方法:

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]
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]