首页 > 编程语言 >【Python】数据评估

【Python】数据评估

时间:2025-01-01 22:54:27浏览次数:3  
标签:None Python 列名 DataFrame display 数据 csv1 评估

何为孤勇?明知不可为而为之,明知人心难测而信之。

前言

  这是我自己学习Python的第六篇博客总结。后期我会继续把Python学习笔记开源至博客上。 

  上一期笔记有关Python的JSON与CSV数据获取,没看过的同学可以去看看:
【Python】JSON与CSV数据获取-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/hsy1603914691/article/details/141925614

数据评估

1. 在获得数据后,需要对原始数据的结构与内容进行评估。

2. 如果数据评估后发现数据不能直接进行分析,需要先进行数据清洗。

数据结构评估 

1. 结构方面需要清理的数据叫做乱数据,结构方面不需要清理的数据叫做整洁数据。

2. 整洁数据有以下特点:(列是属性,行是示例)

  1. 每列是一个变量。
  2. 每行是一个观察值。
  3. 每个单元格是一个元素值。 

数据内容评估 

1. 内容方面需要清理的数据叫做脏数据,内容方面不需要清理的数据叫做干净数据。

2. 脏数据包括:空白数据、重复数据、不一致数据、无效数据、错误数据。

代码实现

1. DataFrame.info()方法可以提供数据的概况信息,包括行(列)的数量、列名、列对应的数据类型 、非空缺值的数量,从宏观上进行评估。

2. DataFrame.head()和DataFrame.tail()方法可以提供开头几行数据或者结尾几行数据,DataFrame.sample()会随机返回几行数据,从具体的数据上进行评估。

3. DataFrame.info()方法得到的非空缺值的数量与行数进行对比,可以得到该列空缺值的数量,从空缺值上进行评估。

5. 无论是Series对象还是DataFrame对象,都有isnull()方法,返回一个布尔值列表或者布尔值图表,能告诉我们原来对象的每个元素值是否为空缺值。

6. 对于DataFrame对象,可以使用DataFrame[列名].isnull()来判断具体某一列的每一项是否有空缺值。

7. 对于DataFrame对象,可以使用DataFrame.isnull().sum()来计算每一列分别有多少空缺值。

8. 对于DataFrame对象,可以使用print(DataFrame[DataFrame[列名].isnull()])来找到某一列存在缺失值的行。

9. 无论是Series对象还是DataFrame对象,都有duplicated()方法,当某行与前面一行完全相同时,会返回Frue。如果DataFrame对象,如果希望指定某几列,则使用参数(subset("列名1","列名2")),当某行与前面一行在这两列上值完全相同时,会返回Frue。

import pandas as pd
csv1=pd.read_csv("C:/Users/风中的云彩2/Desktop/编程/python课件/数据清洗/example1.csv")
with pd.option_context(
        'display.max_rows', None,  # 显示所有行
        'display.max_columns', None,  # 显示所有列
        'display.width', None,  # 自动检测终端宽度
        'display.max_colwidth', None  # 不截断列内容
):
    print(csv1.info())
print(csv1.isnull())
print(csv1["age"].isnull())

数据清洗 

清理索引和列名 

1. 如果原始数据的第一行(列名)和第一列(索引)存在问题,那么就可以使用rename(index={})方法和rename(columns={})方法,字典里面的键是原始值,字典里面的值是修改后的值。但这种方法不会修改原来的图表,而是会返回一个新的修改后的图表。

2. 使用set_index("列名")方法可以把这个列名作为索引,并返回一个新的图表。而reset_index()方法可以把当前索引作为一列的列名,然后使用位置索引,并返回一个新的图表。

3. sort_index()方法对索引进行排序;sort_index(axis=1)方法对列名进行排序。

import pandas as pd
csv1=pd.read_csv("C:/Users/风中的云彩2/Desktop/编程/python课件/数据清洗/example1.csv")
csv1=csv1.rename(columns={"Unnamed: 0":"学号","客户_姓名":"客户姓名","age":"年龄"})
with pd.option_context(
        'display.max_rows', None,  # 显示所有行
        'display.max_columns', None,  # 显示所有列000000000000000000000000000
        'display.width', None,  # 自动检测终端宽度
        'display.max_colwidth', None  # 不截断列内容
):
    print(csv1)

清理数据内容 

1. 整洁的数据要求:

  1. 每列是一个变量。
  2. 每行是一个观察值。
  3. 每个单元格是一个元素值。

2. 如果一个列出现了两个变量,那么就需要对这列进行拆分。DataFrame对象,我们可以使用DataFrame[[新列名1,新列名2]]=DataFrame[列名0].str.split("字符",expand=True),然后使用DataFrame.drop(列名0,axis=1),来去掉原来的列。

3. 如果一个变量出现在两列,那么就需要对这两列进行合并。DataFrame对象,我们可以使用DataFrame[[新列名]]=DataFrame[列名0].str.cat(DataFrame[列名01],sep="拼接分隔符"),然后使用DataFrame.drop(列名0,列名01,axis=1),来去掉原来的列。

4. 宽数据转化成长数据,可以使用pd.melt(DataFrame,id_vars=["需要保留的列名1","需要保留的列名2",var_name="新列列名",value_name="变量值"])。

5. 如果某列数据都是以列表的形式存在,那么可以对该列进行拆分,可以使用DataFrame.explode("要拆分的列")。

处理缺失值 

1. 如果缺失值较少,那么可以直接手动定位缺失值位置,并给出新的值。

2. 如果缺失值较多,那么可以使用fillna()方法,会把缺失值替换成传入的参数;当往fillna()中传入的是字典时,可以同时替换不同列的缺失值。

3. 如果我们对缺失值无法进行补充,那么我们可以使用dropna.(subset=[列名]),对这一列参在缺失值的行进行删除。

处理重复数据 

1. 当要删除重复的数据时,可以使用drop_duplicates()方法。

2. 删除的数据是第二次出现的值,第一次出现的值保持不变。

3. 统一数据,可以使用replace("原始值",”新值“)来统一数据。

4. 对于Series对象,可以通过astype()方法来改变类型。

5. 对于数值数据,我们可以直接进行计算;对于分类数据,推荐转化为"category"类型。

保存数据 

1. 对于DataFrame对象,我们可以使用DataFrame.to_csv(文件路径,index=False)方法,能把数据保存在文件路径上面。

致谢

  感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能! 

标签:None,Python,列名,DataFrame,display,数据,csv1,评估
From: https://blog.csdn.net/hsy1603914691/article/details/144813820

相关文章

  • Python的标准库
    Python的标准库是一个庞大的集合,包含了众多模块和包,涵盖了从文件操作、网络通信到数据分析、机器学习等多个领域。以下是对Python标准库的一些主要分类和内容的概述:文本处理服务string:提供字符串的通用操作[^1^][^2^][^3^]。re:支持正则表达式匹配操作[^1^][^2^][^3^]。diff......
  • THUCNews解压/THUCNews数据集解压出问题
    省流:使用zip64进行解压,文件数目太多windows默认zip16装不下我在使用THUCNews中文文本数据集时出现了问题,原数据集解压后应该包含以下两个文件夹:其中THUCNews文件夹下有以新闻类别命名的子文件。官网下载的是一个1.56GB的zip压缩包而我用windows11默认解压后出现了一个三......
  • Python 虚拟环境:原理解析与最佳实践
    从一个困境说起小王最近遇到了一个棘手的问题:他在维护两个Python项目,一个是去年开发的数据分析系统,依赖TensorFlow1.x;另一个是最近在做的预测模型,需要用到TensorFlow2.x的新特性。每次切换项目时,他都要手动更改Python包的版本,这不仅繁琐,而且经常出错。"难道就没有办法......
  • 利用Python内置函数实现的冒泡排序算法
    以下是一个使用Python内置函数实现的冒泡排序算法示例:defbubble_sort(arr):n=len(arr)foriinrange(n):forjinrange(0,n-i-1):ifarr[j]>arr[j+1]:arr[j],arr[j+1]=arr[j+1],arr[j]#测试示例......
  • 怎样用 Excel 做数据分析?
    与其单纯地学习怎么使用Excel,不如结合AI工具来进行数据分析。接下来就来盘一盘AI在Excel做数据分析方面会带来哪些改进和帮助。 原本不能非常复杂的公式,变成聊天的方式。Excel门槛被大大降低,以前技术大佬才能干的活,现在前台小姐姐、人资小姐姐、财务小姐姐们可以轻松拿捏......
  • 14_业务分析介绍&15_Python报表自动化&18_AB测试实战&19_用户偏好分析和TGI&20_同期群
    文章目录14_业务分析介绍业务分析介绍学习目标1数据指标简介1.1什么是数据指标1.2常用的业务指标1.3如何选择指标2电商业务指标3电商分析方法论及应用黄金公式GROWAIPL抖音5A与京东4A3通过数据分析解决的业务问题(了解)行业趋势分析竞......
  • 运维系列&Vmware系列&虚拟机系列【仅供参考】:vmware集群 vSAN HCL 数据库更新问题
    vmware集群vSANHCL数据库更新问题vmware集群vSANHCL数据库更新问题HCL数据库升级VSAN版本目录升级......
  • 数据结构复习 (顺序查找,对半查找,斐波那契查找,插值查找,分块查找)
    查找(检索):定义:从给定的数据中找到对应的K1,顺序查找:O(n)的从前向后的遍历2,对半查找,要求有序从中间开始查找,每次检查中间的是否正确,不正确就根据性质去左边or右边找2.1对半插入排序在找位置的时候是logn去找,但是最后需要换位置排序之后仍然是O()N^2)对同一序列分别......
  • 数据结构复习 (二叉查找树,高度平衡树AVL)
    1.二叉查找树:为了更好的实现动态的查找(可以插入/删除),并且不超过logn的时间下达成目的定义:二叉查找树(亦称二叉搜索树、二叉排序树)是一棵二叉树,其各结点关键词互异,且中根序列按其关键词递增排列。等价描述:二叉查找树中任一结点P,其左子树中结点的关键词都小于P的关键词......
  • JavaScript 中处理 100 万数据时确保性能和流畅度的几种方法
    以下是在JavaScript中处理100万数据时确保性能和流畅度的几种方法:1.使用WebWorkers思路:将数据处理任务转移到WebWorkers,它可以在后台线程中执行代码,避免阻塞主线程,从而保证页面的流畅性。代码示例:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-......