Python数据分析——探索Iris纸鸢花数据

目录

读取数据iris.csv,命名为iris

数据框中有缺失值吗?

统计总共有多少种类型的纸鸢花(class)?

将列petal_length的第10到19行设置为缺失值,并且将iris前三行设置为缺失值

用bfill方式替换petal_length列的缺失值

删除iris有缺失值的行

将iris索引设置为iris+序号的形式,例如iris0,iris1,iris2


读取数据iris.csv,命名为iris

import pandas as pd
iris = pd.read_csv(r'C:\Users\75559\Python\expt1\iris.csv')
iris

        在这段代码中,iris 是一个变量名,它被用来存储通过 pandas 库读取的 CSV 文件的内容。pd.read_csv(r'C:\Users\75559\Python\expt1\iris.csv') 这行代码是用来从指定的文件路径(C:\Users\75559\Python\expt1\iris.csv)读取 CSV 文件,并将其加载到一个 DataFrame 对象中。CSV 文件是一种简单的文本数据格式,常用于存储表格数据。

  iris 这个名字通常与鸢尾花数据集(Iris dataset)联系在一起,这是一个经典的多类分类问题数据集。这个数据集包含了 150 朵鸢尾花的信息,每朵花有四个特征:花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)和花瓣宽度(petal width)。数据集还包含了每个鸢尾花的种类(species),分为三种:山鸢尾(Setosa)、变色鸢尾(Versicolor)和维吉尼亚鸢尾(Virginica)。

        在 Python 中,通过使用 iris 变量名,你可以方便地引用这个数据集,并进行后续的数据分析、可视化或机器学习建模等工作。

        iris 这一行代码没有输出任何内容,因为它是一个赋值语句,而不是一个打印语句。如果你想查看 iris DataFrame 的内容,你需要使用 print(iris) 或者 iris.head() 等方法来输出数据集的前几行。

数据框中有缺失值吗?

iris.loc[iris.isna().sum(axis=1)>0,:]
  1. iris: 这是一个已经加载到 DataFrame 对象中的数据集,通常是从 CSV 文件中读取的。

  2. iris.isna().sum(axis=1): 这部分代码首先检查 iris 中的每个值是否为缺失值(NaN)。isna() 函数会返回一个布尔值矩阵,其中 True 表示对应的元素是缺失值。然后,sum(axis=1) 会对每一行(即每个鸢尾花实例)进行求和,返回每行中缺失值的个数。

  3. iris.loc[...]: 这是 pandas 中用于基于条件选择 DataFrame 中的行的方法。iris.loc[iris.isna().sum(axis=1)>0,:] 中的条件 iris.isna().sum(axis=1)>0 意味着选择那些缺失值个数大于 0 的行。

  4. :: 这表示选择所有列。所以,iris.loc[iris.isna().sum(axis=1)>0,:] 会选择 iris DataFrame 中所有包含至少一个缺失值的行,以及所有的列。

综上所述,iris.loc[iris.isna().sum(axis=1)>0,:] 这段代码会选择 iris DataFrame 中所有包含至少一个缺失值的行,并返回这些行的所有列的数据。这通常用于数据清洗过程中,以便识别和处理缺失值。

统计总共有多少种类型的纸鸢花(class)?

print(iris['class'].nunique())

这段代码是用来计算 iris DataFrame 中 ‘class’ 列的唯一类别数量。

具体来说:

  1. iris: 这是一个已经加载到 DataFrame 对象中的数据集,通常是从 CSV 文件中读取的。

  2. iris['class']: 这表示我们关注 iris DataFrame 中的 ‘class’ 列,这一列通常包含了鸢尾花的种类信息。

  3. .nunique(): 这是 pandas 中用于计算某一列中唯一值(distinct values)数量的方法。对于分类数据,这通常用来确定有多少不同的类别。

        print(iris['class'].nunique()) 这段代码会打印出 iris DataFrame 中 ‘class’ 列的唯一类别数量。这对于了解数据集中类别的多样性非常有用,也是数据预处理和机器学习建模中的一个重要步骤。例如,如果 iris['class'].nunique() 返回 3,这意味着有 3 种不同的鸢尾花类别(Setosa、Versicolor 和 Virginica)。

将列petal_length的第10到19行设置为缺失值,并且将iris前三行设置为缺失值

iris.iloc[9:19, 2] = None
iris.iloc[:3, :] = None

        这两行代码分别用于在 iris DataFrame 中设置特定的值为学生数组(None 在 Python 中通常表示 NoneType 类型,但在 pandas 中它代表 NaN,即 Not a Number,表示缺失值)。

  1. iris.iloc[9:19, 2] = None

    这行代码选择了 iris DataFrame 中第 9 到第 19 行(包含第 9 行和第 19 行),以及第 2 列,并将这些位置的值设置为 None。这意味着这些位置原来的值将被替换为 NaN,表示缺失值。

  2. iris.iloc[:3, :] = None

    这行代码选择了 iris DataFrame 的前 3 行(包含第 1 行、第 2 行和第 3 行),以及所有列,并将这些行的所有值设置为 None。同样,这意味着这些位置原来的值将被替换为 NaN,表示缺失值。

        这些操作通常用于数据清洗过程中,以便在后续分析中处理缺失值。需要注意的是,一旦设置了 NaN,就可以使用各种方法来填充或删除这些缺失值,例如使用 fillna() 或 dropna() 函数。

bfill方式替换petal_length列的缺失值

iris['petal_length'].fillna(method='bfill')

这行代码是使用 pandas 库中的 fillna() 方法来处理 iris DataFrame 中 ‘petal_length’ 列的缺失值。

具体来说:

  1. iris: 这是一个已经加载到 DataFrame 对象中的数据集,通常是从 CSV 文件中读取的。

  2. iris['petal_length']: 这表示我们关注 iris DataFrame 中的 ‘petal_length’ 列,这一列通常包含了鸢尾花花瓣的长度信息。

  3. .fillna(method='bfill'): 这是 iris['petal_length'] 列的 fillna() 方法,用于填充缺失值。method='bfill' 指定了填充缺失值的方法为 “backfill” 或 “bfill”,这是一种向前填充缺失值的方法,即用前一个非缺失值来填充缺失值。

综上所述,iris['petal_length'].fillna(method='bfill') 这段代码会用 iris['petal_length'] 列中前一个非缺失值来填充该列中的缺失值。这是一种处理缺失数据的方法,可以避免缺失值对数据分析结果的影响。

删除iris有缺失值的行

print(iris.dropna(axis=0))

        这行代码用于删除 iris DataFrame 中包含缺失值的所有行。

        具体来说:

  1. iris: 这是一个已经加载到 DataFrame 对象中的数据集,通常是从 CSV 文件中读取的。

  2. .dropna(axis=0): 这是 iris DataFrame 的 dropna() 方法,用于删除包含缺失值的数据行。参数 axis=0 表示沿着行轴进行操作,即删除含有缺失值的行。

        综上所述,print(iris.dropna(axis=0)) 这段代码会打印出删除含有缺失值的所有行之后的结果。这意味着任何包含 NaN(Not a Number,即缺失值)的行将被从 DataFrame 中移除。这是一种常见的数据预处理步骤,旨在清理数据集,消除缺失值对分析的影响。

iris索引设置为iris+序号的形式,例如iris0,iris1,iris2

iris.index = ["iris"+str(i) for i in iris.index]
print(iris)

这行代码是将 iris DataFrame 的索引重新赋值为一个新列表,新列表中的每个元素都是 “iris” 加上原来索引的数字。

具体来说:

  1. iris: 这是一个已经加载到 DataFrame 对象中的数据集,通常是从 CSV 文件中读取的。

  2. iris.index: 这是 iris DataFrame 的索引。在默认情况下,索引可能是由整数组成的序列,例如 [0, 1, 2, ...]

  3. ["iris"+str(i) for i in iris.index]: 这是一个列表推导式,它遍历 iris.index 中的每个元素(假设它们是整数),将 “iris” 字符串与每个整数的字符串表示形式相连接,创建一个新的字符串列表。例如,如果索引是 [0, 1, 2],那么列表推导式将产生 ["iris0", "iris1", "iris2"]

  4. iris.index = ...: 这行代码将新的字符串列表赋值给 iris DataFrame 的索引。这样,iris DataFrame 的索引就被更新为新的字符串形式,例如 ["iris0", "iris1", "iris2", ...]

  5. print(iris): 这行代码打印出更新索引后的 iris DataFrame 的内容。

综上所述,这行代码的作用是将 iris DataFrame 的索引更改为以 “iris” 开头,后面跟着一个数字的形式,例如 "iris0", "iris1", "iris2", ...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值