这是第一个,每个都有配套的文档
import pandas as pd
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
import matplotlib.pyplot as plt
%matplotlib inline
test=pd.read_excel('2017年南区污水试验检测结果统计表(周检).xlsx')
test.head()
取样地点 | 取样日期 | 编号 | 化学需氧量 | 氨氮 | 总氮 | 总磷 | 锰 | |
---|---|---|---|---|---|---|---|---|
0 | 南区污水 | 2017-05-22 | 170522WST01 | 1.21 | 0.025 | 0.05 | 0.030 | 0.01 |
1 | 南区污水 | 2017-05-22 | 170522WST02 | 360.00 | 0.091 | 50.50 | 0.910 | 0.01 |
2 | 南区污水 | 2017-06-01 | 170601WST03 | 20.70 | 0.025 | 2.03 | 0.006 | 0.01 |
3 | 南区污水 | 2017-06-01 | 170601WST04 | 39.60 | 0.605 | 27.60 | 2.430 | 0.01 |
4 | 南区科研 | 2017-06-05 | 170605WST04 | 45.80 | 0.312 | 21.70 | 0.983 | 0.01 |
test.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 18 entries, 0 to 17
Data columns (total 8 columns):
取样地点 18 non-null object
取样日期 18 non-null datetime64[ns]
编号 18 non-null object
化学需氧量 18 non-null float64
氨氮 18 non-null float64
总氮 18 non-null float64
总磷 18 non-null float64
锰 18 non-null float64
dtypes: datetime64[ns](1), float64(5), object(2)
memory usage: 1.2+ KB
test.hist(figsize=(20,10))
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x00000171E856CD30>,
<matplotlib.axes._subplots.AxesSubplot object at 0x00000171E85D2828>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x00000171E884AEB8>,
<matplotlib.axes._subplots.AxesSubplot object at 0x00000171E887B588>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x00000171E88A3C18>,
<matplotlib.axes._subplots.AxesSubplot object at 0x00000171E88A3C50>]],
dtype=object)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KrFgpysM-1574996603612)(output_4_1.png)]
test['取样地点'].unique()
array(['南区污水', '南区科研', '反渗透水', '超滤出水', '超滤进水', '超滤产水'], dtype=object)
X = test.drop(['取样地点','编号','取样日期'],axis=1)
通过聚类算法验证是否可行
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
X = np.array(X)
#类簇的数量
n_clusters = 4
#现在把数据和对应的分类书放入聚类函数中进行聚类
cls = KMeans(n_clusters).fit(X)
#X中每项所属分类的一个列表
cls.labels_
#画图
markers = ['^', 'x', 'o', '*', '+']
for i in range(n_clusters):
members = cls.labels_ == i
plt.scatter(X[members, 0], X[members, 1], s=60, marker=markers[i], c='b', alpha=0.5)
plt.title(' ')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XhFLbFX7-1574996603613)(output_8_0.png)]