python 数据挖掘 之 对数据进行简单预处理(1)

本文介绍了Python数据挖掘中对数据集进行简单预处理的步骤,包括数据集介绍、提取数据到列表、删除重复数据和处理缺失值。通过一个小麦种子数据集为例,展示了如何操作实际数据。预处理还包括考虑数据的规范化和归一化,但在这个案例中未进行这些处理。

python 数据挖掘 之 对数据进行简单预处理

在我们对数据集进行数据挖掘之前,需要先对数据集进行简单的处理,让数据集变得更规范更具有代表性。
对数据集进行的预处理又许多种,接下来我就简单说几种常用的。

光说不如边做边说,我这里有一个在网上找到的数据集,我们可以拿它来做例子。
seeds_dataset.txt

数据集介绍

三种不同品种小麦籽粒几何性状的测定。软X射线技术和GRAINS包用于构建所有七个实值属性
数据集来源: https://archive.ics.uci.edu/ml/datasets/seeds
数据集特征:多变量
实例数:210
检查组包括属于三种不同品种小麦的籽粒:Kama,Rosa和Canadian,每种70个元素,随机选择用于实验。
使用软X射线技术检测内部核结构的高质量可视化。
它是非破坏性的,并且比其他更复杂的成像技术(如扫描显微镜或激光技术)便宜得多。
将图像记录在13×18cm X射线KODAK板上。
使用来自实验田的联合收获的小麦谷粒进行研究,在卢布林的波兰科学院的农业生物学研究所进行了探索。

上面是凑字数的, 下面是重点:
为了构建数据,测量了小麦籽粒的七个几何参数:

1 面积A
2 周长P
3 紧凑度C = 4 pi A / P ^ 2
4 籽粒长度
5 籽粒宽度
6 不对称系数
7 核槽的长度
所有这些参数都是实值连续的。然后第八项是小麦的品种,取值1,2,3分别代表不同的小麦品种。

这是一些数据样例:
14.29 14.09 0.905 5.291 3.337 2.699 4.825 1
13.84 13.94 0.8955 5.324 3.379 2.259 4.805 1
16.17 15.38 0.8588 5.762 3.387 4.286 5.703 2
12.21 13.47 0.8453 5.357 2.893 1.661 5.178 3
.
.
.

用python将数据集提取成列表

from pandas import Series,DataFrame,np
from numpy import nan as NA
import pandas as pd
from scipy.interpolate import lagrange
#部分可能用不上,但多了不出错。。。

#打开文件并读取
filename = r"seeds_dataset.txt"
#这里用绝对路径相对路径均可,看情况而定

a=[]#创建一个列表准备承载数据
try:
    fp=open(filename,"r")
    print('%s 文件打开成功' % filename)
    for line in fp.readlines():   
        line=line.strip('\n')
        #因为在每一行后面都有换行符所以需要先删掉
        
        line=line.split('\t')
        #这个文档中数据与数据之间是缩进符,所以是以 '\t' 为为分隔符
        #其他的有 ','' ' 等以分隔符,换成对应的即可
                    
        a.append(line)#把每一行加入到列表中

    fp.close()
    print("文件内容为:")
    print(a)
except IOError:
    print("文件打开失败,%s文件不存在" % filename)

运行后发现a里面已经塞进了数据。

删除重复数据

有些数据集中有一些数据是重复的,这可能会对之后的数据挖掘产生一定的误差,所以我们需要先把重复的部分删除。


b=[]
for i in a :
    if i not in b :
        b.append(i)
a=b
#print('删除重复数据后b的长度',len(a))

这里运用一个新建列表进行迁移的方式来删除重复部分。

删除所有带有缺失数据的数据行

print('未处理前数据长度为',len(a))
s=[]
for q in range(len(a)):    #首先找出有问题的坐标
    for i in a[q]:
        if (i=='0' or i==''):#这里输入不合格的数据,可以用or继续扩展
            s.append(q)
            break
print(s)
for i in range(len(s)):#倒序一个一个的把有问题的删除
    del a[s[-1]
    s.pop()
print('删除带有缺失的数据行后数据长度为',len(a))

下面是结果示意,可以看到已经删掉部分数据了

在这里插入图片描述
当然也有其他的方法处理有数据异常的数据,比如检测后替换异常值,替换的值可以选用数据平均值等数据,这里不再赘述。

实际上数据的预处理还可以有许多步骤,像是数据规范化,归一化,可以选择最大最小规范化,零均值规范化,小数定标规范化等方式处理(相关概念可以问度娘。网络是个好东西,得好好利用。说白了是我懒得写了),这个数据集我感觉可以不用这样处理,所以就不加了。
这些就是关于数据集的一些简单的预处理, 如果有机会的话我还会写写其他的预处理方式的。欢迎大家讨论和发言啊。。,,

打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/882hb 小麦种子样本数据集采用Excel格式进行存储和管理,其中包含共210个样本数据,涉及8项指标分析。具体包括小麦籽粒周长、压实程度、长度与宽度等形态学特征的测量数据,并对不同生长阶段的小麦籽粒进行了分类标记(分为类别1、2、3)。 小麦种子数据集是一个包含210个样本的集合,它以Excel格式为载体,目的是为科研人员、农业工作者及相关行业专家提供丰富的实证研究资料。数据集详细记录了每个样本的多项形态学特征,具体包括小麦籽粒的周长、压实程度、长度和宽度等重要指标。周长的测量可以反映出小麦籽粒的大小,对于评估种子的成熟度及产量具有重要意义。而压实程度则直接关联到种子的质量与存储条件,有助于判定种子的保存状态。 长度和宽度的准确测量有助于了解小麦籽粒的形状,这对于研究种子的遗传变异和适应性具有不可忽视的价值。数据集对于不同生长阶段的小麦籽粒进行了明确分类,即类别1、类别2和类别3。这种分类能够帮助研究者根据不同生长周期的特点,进行针对性的分析与研究。例如,类别1可能代表初生阶段的小麦籽粒,类别2和类别3分别代表中生和成熟阶段,这样的分类有助于对不同成熟度的种子进行形态和质量的对比分析。 这些详尽的特征数据为开展小麦籽粒质量评估、生长发育研究以及遗传多样性分析等提供了坚实的数据支持。通过这些数据研究者可以更精确地掌握不同品种小麦的生长特征,为优化种植、改良品种、提高产量及质量提供科学依据。此外,由于该数据集还提供了源码的免费下载链接,用户可以更深入地进行数据分析、挖掘和模型构建,无需从零开始,极大地提高了研究效率和成果的可靠性。 小麦种子数据集的发布,标志着农业数据共享与应用的新趋势。它不仅促进了科研成果的交流与合作,也推动了农业科学的研究方法从传统走向现代。数据集的公开使用,将有助
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值