首页 > 其他分享 >怎么用Jupyter Notebook对数据集进行清洗和标注

怎么用Jupyter Notebook对数据集进行清洗和标注

时间:2023-04-15 10:12:20浏览次数:44  
标签:iris Jupyter df Notebook iloc 清洗 csv 数据 标注

数据清洗是数据预处理的一部分,是数据分析和建模前必须进行的重要步骤。数据清洗可以帮助我们解决数据中包含的噪声、异常值、缺失值、重复数据等问题,从而提高数据的质量和可靠性。如果不进行数据清洗,可能会影响后续的数据分析和建模结果,甚至产生误导性的结论。因此,在进行任何数据分析和建模之前,必须对数据进行清洗和预处理。

简单的基本操作步骤

一、使用Jupyter Notebook对数据集进行清洗和标注的具体步骤如下:

  1. 打开Jupyter Notebook,创建一个新的notebook文件。

  2. 在notebook中导入pandas库,可以使用以下代码:

    import pandas as pd
    
  • 读取数据集文件,可以使用pandas库中的read_csv()函数,例如:

    df = pd.read_csv('data.csv')
    

其中'data.csv'为数据集文件的路径和文件名,可以根据实际情况进行修改。

  • 对数据集进行清洗和标注,可以使用pandas库中的各种函数和方法进行处理,例如:

    • 去除重复数据:使用drop_duplicates()函数,例如:df.drop_duplicates(inplace=True)

    • 缺失值填充:使用fillna()函数,例如:df['age'].fillna(df['age'].mean(), inplace=True)

    • 异常值处理:使用df[]语句删除异常值,例如:df = df[df['age'] <= 100]

    • 数据标注:使用map()函数将文本数据标注为数字,例如:

      occupation_dict = {'Engineer': 1, 'Manager': 2, 'Doctor': 3, 'Teacher': 4, 'Lawyer': 5, 'CEO': 6, 'Designer': 7, 'Journalist': 8, 'Programmer': 9}
      df['occupation'] = df['occupation'].map(occupation_dict)
      
  • 处理完成后,可以使用to_csv()函数将清洗和标注后的数据保存成新文件,例如:

    df.to_csv('cleaned_data.csv', index=False)
    

其中'cleaned_data.csv'为保存的文件名和路径,index=False表示不保存索引列。

效果

原始数据如下:

name,age,gender,occupation
Alice,250,Female,Engineer
Bob,30,Male,Manager
Charlie,40,Male,Doctor
David,28,Male,Teacher
David,28,Male,Teacher
Emily,35,Female,Lawyer
Frank,45,Male,CEO
Grace,27,Designer
Hannah,32,Female,Journalist
Isaac,38,Male,Programmer

清洗后的数据:

image


二、也可以用URL导入数据集文件:在Jupyter Notebook中使用pandas库中的read_csv()函数可以直接从URL导入数据集文件,例如:

url = 'https://raw.githubusercontent.com/xxx/data.csv'
df = pd.read_csv(url)

其中url为数据集文件的URL地址,可以将其替换为实际的URL地址。

举例:

可以使用UCI Machine Learning Repository网站提供的Iris数据集作为示例。该数据集包含150个样本,每个样本有4个特征(萼片长度、萼片宽度、花瓣长度和花瓣宽度),共分为3类(山鸢尾、变色鸢尾和维吉尼亚鸢尾)。

为了创建一个包含缺失数据、重复数据和错误数据的数据集,可以使用以下代码对Iris数据集进行修改:

import pandas as pd
import numpy as np

# 读取Iris数据集
iris = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None)
iris.columns = ['sepal length', 'sepal width', 'petal length', 'petal width', 'class']

# 添加缺失数据
iris.iloc[1, 1] = np.nan
iris.iloc[3, 2] = np.nan
iris.iloc[6, 0] = np.nan
iris.iloc[8, 3] = np.nan

# 添加重复数据
iris = pd.concat([iris, iris.iloc[0:10]], axis=0).reset_index(drop=True)

# 添加错误数据
iris.iloc[10, 2] = 'error'
iris.iloc[20, 1] = -1

# 保存数据集
iris.to_csv('iris_with_errors.csv', index=False)

这个示例代码中,首先从UCI Machine Learning Repository网站读取Iris数据集,然后对数据集进行以下修改:

  1. 添加缺失数据:在第2行、第4行、第7行和第9行分别添加缺失数据。
  2. 添加重复数据:将前10行数据复制一遍,然后添加到原数据集的末尾。
  3. 添加错误数据:在第11行中,将第3列数据设置为'error';在第21行中,将第2列数据设置为-1。

标签:iris,Jupyter,df,Notebook,iloc,清洗,csv,数据,标注
From: https://www.cnblogs.com/GeniusWang/p/17320581.html

相关文章

  • install packages in jupyter notebook
    !condainstall--yesnumpy!pipinstallnumpy!echo$PATH#Ifyouwanttoknowwhatisactuallyexecuted#whenyoutypepython,youcanusethetypeshellcommand:!typepython!typels参考:[1]https://jakevdp.github.io/blog/2017/12/05/installing......
  • 设置jupyter notebook的python environment
    (base)$condainstallnb_conda_kernels(base)$condacreate--namenew-env(base)$condaactivatenew-env(new-env)$condainstallipykernel(base)$condadeactivate(base)$jupyternotebookclickkernel,selectchangekernel,youwillseeyourenviro......
  • jupyter notebook 更改密码
    20230412jupyternotebookpassword参考:[1]https://stackoverflow.com/questions/36312372/change-jupyter-notebook-server-password......
  • CAD引线标注文字怎么调整大小?教你三步搞定!
    CAD引线标注就是指画出一条引线来标注对象,在引线末端可以添加多行旁注、说明。如果觉得图纸中的CAD引线标注文字大小不合适,可以进行调整,将字体调整到自己适合的大小即可。今天,和小编一起来看看CAD引线标注文字怎么调整大小吧! CAD引线文字大小调整步骤: 步骤一:打开图纸文件启......
  • CAD怎么标注尺寸?这些常见的CAD标注快捷键你会用吗?
    CAD怎么标注尺寸?CAD标注是向图形中添加测量注释的过程,常见的标注类型有:CAD线性标注、CAD角度标注、CAD半径标注、CAD直径标注与CAD坐标标注。这些常见的CAD标注快捷键你会用吗?赶快一起来看看吧! 1、CAD线性标注快捷键:DLI创建的CAD线性标注包括尺寸线水平、垂直或对齐几种类型,若......
  • pyspark 集成jupyter与pyspark on yarn
    标签(空格分隔):Spark的部分一:安装jupyterHadoop集群+spark集群安装忽略yuminstallepel-releaseyuminstallpython36pip3install--upgradepip#升级pip到最新版本pip3installjupyter#安装jupyterjupyternotebook--generate-config#安装后......
  • 基于Label studio实现UIE信息抽取智能标注方案,提升标注效率!
    基于Labelstudio实现UIE信息抽取智能标注方案,提升标注效率!项目链接见文末人工标注的缺点主要有以下几点:产能低:人工标注需要大量的人力物力投入,且标注速度慢,产能低,无法满足大规模标注的需求。受限条件多:人工标注受到人力、物力、时间等条件的限制,无法适应所有的标注场景,尤......
  • Window下,利用Anaconda2创建jupyter-notebook的python3环境方法
    转载自:https://www.cnblogs.com/ljy2013/p/8351067.html随着深度学习的火热,越来越多的人去学习和了解这门技术。而做算法的同学为了能够更快,更高效的写出相关的深度学习算法出来,需要比较方便的开发环境。今天主要介绍一下在jupyternotebook中,新增python3的环境,从而可以使用tenso......
  • anaconda 和 python 安装;jupyter 开发环境的使用
     1\anaconda和python安装1.操作系统:win7,配置环境时需要联网。2.anaconda安装anaconda下载地址:https://www.continuum.io/downloads/。根据电脑的操作系统位数,选择下载32位和64位的anaconda;安装anaconda到D:\anaconda文件夹下。3.配置环境python3.6运行“开始\所有......
  • jupyter 主题设置
      参考:(63条消息)JupyterNotebook设置黑色背景主题,字体大小,代码自动补全_jupyter黑色背景_极客阿宝的博客-CSDN博客 pipinstalljupyterthemes-ihttps://mirrors.aliyun.com/pypi/simple jt-tmonokai-ffira-fs13-cellw90%-ofs11-dfs11-T-N......