Pandas之iris数据集简单分析

 导出iris数据集

from sklearn import datasets
import pandas as np


iris_datas = datasets.load_iris()

iris_data是一个类似字典的对象。

print(iris_datas.data) # 数据集中的数据
print(iris_datas.target_name) #  iris的种类

iris = pd.DataFrame(iris_datas.data, columns=['SpealLength', 'Spealwidth', 'PetalLength', 'PetalLength'])

iris.shape
iris.head()

(150, 4)

    SpealLength	 Spealwidth	PetalLength	PetalLength
0	    5.1	        3.5	        1.4	     0.2
1	    4.9	        3.0	        1.4	     0.2
2	    4.7	        3.2	        1.3	     0.2
3	    4.6	        3.1	        1.5	     0.2
4	    5.0	        3.6	        1.4	     0.2
描述性统计
iris.describe().T     # 描述性统计转置


 

花萼长度与宽度/花瓣长度与宽度的可视化,判断是否仅依据其即可判别鸢尾花品种。

from collection import Counter, defaultdict
import matplotlib
import matplotlib.pyplot as plt


matplotlib.rcParams['font.sans-serif'] = ['SimHei']

style_list = ['o', '^', 's']       # 设置点的不同形状,不同形状默认颜色不同,也可自定义
data = iris_datas.data
labels = iris_datas.target_names
cc = defaultdict(list)

for i, d in enumerate(data):
    cc[labels[int(i/50)]].append(d)

p_list = []
c_list = []

for each in [0, 2]:
    for i, (c, ds) in enumerate(cc.items()):
        draw_data = np.array(ds)
        p = plt.plot(draw_data[:, each], draw_data[:, each+1], style_list[i])
        p_list.append(p)
        c_list.append(c)

    plt.legend(map(lambda x: x[0], p_list), c_list)
    plt.title('鸢尾花花瓣的长度和宽度') if each else plt.title('鸢尾花花萼的长度和宽度')
    plt.xlabel('花瓣的长度(cm)') if each else plt.xlabel('花萼的长度(cm)')
    plt.ylabel('花瓣的宽度(cm)') if each else plt.ylabel('花萼的宽度(cm)')
    plt.show()

 

鸢尾花数据集Iris dataset)是常用的分类实验数据集,由Fisher于1936年发布,包含了3类共150个样本,每类各50个样本,每个样本包含4个属性。三个类别分别为Iris Setosa、Iris Versicolour、Iris Virginica。 这个数据集是一个经典的机器学习数据集,通常用于分类问题的模型训练和评估。下面是一个简单的 Python 代码,演示如何使用 Scikit-learn 库加载和分析鸢尾花数据集: ```python from sklearn.datasets import load_iris import pandas as pd # 加载鸢尾花数据集 iris = load_iris() # 将数据集转换为 DataFrame 格式,方便分析 df = pd.DataFrame(data=iris.data, columns=iris.feature_names) df['target'] = iris.target # 打印数据集基本信息 print(df.info()) # 打印数据集统计信息 print(df.describe()) # 打印数据集前5行 print(df.head()) # 打印数据集类别分布情况 print(df['target'].value_counts()) ``` 输出结果如下: ``` <class 'pandas.core.frame.DataFrame'> RangeIndex: 150 entries, 0 to 149 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 sepal length (cm) 150 non-null float64 1 sepal width (cm) 150 non-null float64 2 petal length (cm) 150 non-null float64 3 petal width (cm) 150 non-null float64 4 target 150 non-null int32 dtypes: float64(4), int32(1) memory usage: 5.4 KB None sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) target count 150.000000 150.000000 150.000000 150.000000 150.000000 mean 5.843333 3.057333 3.758000 1.199333 1.000000 std 0.828066 0.435866 1.765298 0.762238 0.819232 min 4.300000 2.000000 1.000000 0.100000 0.000000 25% 5.100000 2.800000 1.600000 0.300000 0.000000 50% 5.800000 3.000000 4.350000 1.300000 1.000000 75% 6.400000 3.300000 5.100000 1.800000 2.000000 max 7.900000 4.400000 6.900000 2.500000 2.000000 sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) target 0 5.1 3.5 1.4 0.2 0 1 4.9 3.0 1.4 0.2 0 2 4.7 3.2 1.3 0.2 0 3 4.6 3.1 1.5 0.2 0 4 5.0 3.6 1.4 0.2 0 2 50 1 50 0 50 Name: target, dtype: int64 ``` 在这个例子中,我们使用 Scikit-learn 库中的 load_iris() 函数加载鸢尾花数据集,并将其转换为 Pandas DataFrame 格式,方便后续分析。然后,我们打印了数据集的基本信息、统计信息、前5行数据和类别分布情况。通过这些信息,我们可以对数据集的特征和类别有一个初步的了解。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值