iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python数据分析--Pandas知识
  • 377
分享到

Python数据分析--Pandas知识

知识数据Python 2023-01-30 22:01:22 377人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘 1. 重复值的处理 利用drop_duplicates()函数删除数据表中重复多余的记录, 比如删除重复多余的ID. 1 import pandas as p

本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘

1. 重复值的处理

利用drop_duplicates()函数删除数据表中重复多余的记录, 比如删除重复多余的ID.

1 import pandas as pd
2 df = pd.DataFrame({"ID": ["A1000","A1001","A1002", "A1002"],
3                  "departmentId": [60001,60001, 60001, 60001]})
4 df.drop_duplicates()

2. 缺失值的处理

缺失值是数据中因缺少信息而造成的数据聚类, 分组, 截断等

2.1 缺失值产生的原因

主要原因可以分为两种: 人为原因和机械原因.

1) 人为原因: 由于人的主观失误造成数据的缺失, 比如数据录入人员的疏漏;

2) 机械原因: 由于机械故障导致的数据收集或者数据保存失败从而造成数据的缺失.

2.2 缺失值的处理方式 

缺失值的处理方式通常有三种: 补齐缺失值, 删除缺失值, 删除缺失值, 保留缺失值.

1) 补齐缺失值: 使用计算出来的值去填充缺失值, 例如样本平均值.

使用fillna()函数对缺失值进行填充, 使用mean()函数计算样本平均值.

1 import pandas as pd
2 import numpy as np
3 df = pd.DataFrame({'ID':['A10001', 'A10002', 'A10003', 'A10004'], 
4                    "Salary":[11560, np.NaN, 12988,12080]})
5 #用Salary字段的样本均值填充缺失值
6 df["Salary"] = df["Salary"].fillna(df["Salary"].mean())
7 df

2) 删除缺失值: 当数据量大时且缺失值占比较小可选用删除缺失值的记录.

示例: 删除entrytime中缺失的值, 采用dropna函数对缺失值进行删除:

1 import pandas as pd
2 df = pd.DataFrame({"ID": ["A1000","A1001","A1002"],
3                  "entrytime": ["2015-05-06",pd.NaT,"2016-07-01" ]})
4 df.dropna()

3) 保留缺失值. 

3. 删除前后空格

使用strip()函数删除前后空格.

1 import pandas as pd
2 df = pd.DataFrame({"ID": ["A1000","A1001","A1002"],
3                  "Surname": [" Zhao ","Qian"," Sun " ]})
4 df["Surname"] = df["Surname"].str.strip()
5 df

4. 查看数据类型

查看所有列的数据类型使用dtypes, 查看单列使用dtype, 具体用法如下:

1 import pandas as pd
2 df =  pd.DataFrame({"ID": [100000,100101,100201],"Surname": [" Zhao ","Qian"," Sun " ]})
3 #查看所有列的数据类型
4 df.dtypes
5 #查看单列的数据类型
6 df["ID"].dtype

5. 修改数据类型

使用astype()函数对数据类型进行修改, 用法如下

1 import pandas as pd
2 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname": [" Zhao ","Qian"," Sun " ]})
3 #将ID列的类型转化为字符串的格式
4 df["ID"].astype(str)

6. 字段的抽取

使用slice(start, end)函数可完成字段的抽取, 注意start是从0开始且不包含end. 比如抽取前两位slice(0, 2).

1 import pandas as pd
2 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname": [" Zhao ","Qian"," Sun " ]})
3 #需要将ID列的类型转换为字符串, 否则无法使用slice()函数
4 df["ID"]= df["ID"].astype(str)
5 #抽取ID前两位
6 df["ID"].str.slice(0,2)

 7. 字段的拆分

使用split()函数进行字段的拆分, split(pat=None, n = -1, expand=True)函数包含三个参数:

第一个参数则是分隔的字符串, 默认是以空格分隔

第二个参数则是分隔符使用的次数, 默认分隔所有

第三个参数若是True, 则在不同的列展开, 否则以序列的形式显示.

1 import pandas as pd
2 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname_Age": ["Zhao_23","Qian_33","Sun_28" ]})
3 #对Surname_Age字段进行拆分
4 df_new = df["Surname_Age"].str.split("_", expand =True)
5 df_new

8. 字段的命名

有两种方式一种是使用rename()函数, 另一种是直接设置columns参数

1 import pandas as pd
2 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname_Age": ["Zhao_23","Qian_33","Sun_28" ]})
3 #第一种方法使用rename()函数
4 # df_new = df["Surname_Age"].str.split("_", expand =True).rename(columns={0: "Surname", 1: "Age"})
5 # df_new
6 #第二种方法直接设置columns参数
7 df_new = df["Surname_Age"].str.split("_", expand =True)
8 df_new.columns = ["Surname","Age"]
9 df_new

 两种方式同样的结果:

9. 字段的合并

使用merge()函数对字段进行合并操作.

1 import pandas as pd
2 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname_Age": ["Zhao_23","Qian_33","Sun_28" ]})
3 df_new = df["Surname_Age"].str.split("_", expand =True)
4 df_new.columns = ["Surname","Age"]
5 #使用merge函数对两表的字段进行合并操作.
6 pd.merge(df, df_new, left_index =True, right_index=True)

10. 字段的删除

利用drop()函数对字段进行删除.

1 import pandas as pd
2 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname_Age": ["Zhao_23","Qian_33","Sun_28" ]})
3 df_new = df["Surname_Age"].str.split("_", expand =True)
4 df_new.columns = ["Surname","Age"]
5 df_mer= pd.merge(df, df_new, left_index =True, right_index=True)
6 #drop()删除字段,第一个参数指要删除的字段,axis=1表示字段所在列,inplace为True表示在当前表执行删除.
7 df_mer.drop("Surname_Age", axis = 1, inplace =True)
8 df_mer

删除Surname_Age字段成功:

11. 记录的抽取

1) 关系运算: df[df.字段名 关系运算符 数值], 比如抽取年龄大于30岁的记录.

 1 import pandas as pd
 2 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname_Age": ["Zhao_23","Qian_33","Sun_28" ]})
 3 df_new = df["Surname_Age"].str.split("_", expand =True)
 4 df_new.columns = ["Surname","Age"]
 5 df_mer= pd.merge(df, df_new, left_index =True, right_index=True)
 6 df_mer.drop("Surname_Age", axis = 1, inplace =True)
 7 #将Age字段数据类型转化为整型
 8 df_mer["Age"] = df_mer["Age"].astype(int)
 9 #抽取Age中大于30的记录
10 df_mer[df_mer.Age > 30]

 

2) 范围运算: df[df.字段名.between(s1, s2)], 注意既包含s1又包含s2, 比如抽取年龄大于等于23小于等于28的记录.

df_mer[df_mer.Age.between(23,28)]

3) 逻辑运算: 与(&) 或(|) 非(not)

比如上面的范围运算df_mer[df_mer.Age.between(23,28)]就等同于df_mer[(df_mer.Age >= 23) & (df_mer.Age <= 28)]

df_mer[(df_mer.Age >= 23 ) & (df_mer.Age <= 28)]

 

4) 字符匹配: df[df.字段名.str.contains("字符", case = True, na =False)] contains()函数中case=True表示区分大小写, 默认为True; na = False表示不匹配缺失值.

1 import pandas as pd
2 import numpy as np
3 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname_Age": ["Zhao_23","Qian_33","Sun_28"],"SpouseAge":[np.NaN,"32",np.NaN]})
4 #匹配SpouseAge中包含2的记录
5 df[df.SpouseAge.str.contains("2",na = False)]

 

当na改为True时, 结果为:

5) 缺失值匹配: df[pd.isnull(df.字段名)]表示匹配该字段中有缺失值的记录.

1 import pandas as pd
2 import numpy as np
3 df = pd.DataFrame({"ID": [100000,100101,100201],"Surname_Age": ["Zhao_23","Qian_33","Sun_28"],"SpouseAge":[np.NaN,"32",np.NaN]})
4 #匹配SpouseAge中有缺失值的记录
5 df[pd.isnull(df.SpouseAge)]

12.记录的合并

使用concat()函数可以将两个或者多个数据表的记录合并一起, 用法: pandas.concat([df1, df2, df3.....])

1 import pandas as pd
2 df1 = pd.DataFrame({"ID": ["A10006","A10001"],"Salary": [12000, 20000]})
3 df2 = pd.DataFrame({"ID": ["A10008"], "Salary": [10000]})
4 #使用concat()函数将df1与df2的记录进行合并
5 pd.concat([df1, df2])

 

以上是部分内容, 还会持续总结更新....

 

--结束END--

本文标题: Python数据分析--Pandas知识

本文链接: https://www.lsjlt.com/news/179841.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python数据分析--Pandas知识
    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘 1. 重复值的处理 利用drop_duplicates()函数删除数据表中重复多余的记录, 比如删除重复多余的ID. 1 import pandas as p...
    99+
    2023-01-30
    知识 数据 Python
  • 数据分析入门——Pandas类库基础知识
    使用python进行数据分析时,经常会用Pandas类库处理数据,将数据转换成我们需要的格式。Pandas中的有两个数据结构和处理数据相关,分别是Series和DataFrame。 Series Series是一种类似于一维数组的对象,它...
    99+
    2023-01-31
    基础知识 类库 入门
  • python中pandas的知识点的示例分析
    这篇文章主要介绍python中pandas的知识点的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和f...
    99+
    2023-06-14
  • pandas知识点(数据结构)
    1.Series 生成一维数组,左边索引,右边值: In [3]: obj = Series([1,2,3,4,5]) In [4]: obj Out[4]: 0 1 1 2 2 3 3 4 4 5 dt...
    99+
    2023-01-30
    数据结构 知识点 pandas
  • python数据分析之pandas数据选
      Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用。本文主要介绍Pandas的几种数据选取的方法。   Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据...
    99+
    2023-01-30
    数据 python pandas
  • Python学习教程:Python数据分析实战基础 | 初识Pandas
    这段时间和一些做数据分析的同学闲聊,我发现数据分析技能入门阶段存在一个普遍性的问题,很多凭着兴趣入坑的同学,都能够很快熟悉Python基础语法,好像自己什么都会了一点,然而实际操作起来既不知从何操起,又漏洞百出。至于原因嘛,理解不够,实践不...
    99+
    2023-06-02
  • Python数据分析之pandas读取数据
    一、三种数据文件的读取 二、csv、tsv、txt 文件读取 1)CSV文件读取: 语法格式:pandas.read_csv(文件路径) CSV文件内容如下: import pandas as pd file...
    99+
    2022-06-02
    python pandas读取数据 pandas数据读取
  • Python数据分析库之pandas,你
    写这个系列背后的故事 咦,面试系列的把基础部分都写完啦,哈哈答,接下来要弄啥嘞~ pandas吧 外国人开发的 翻译成汉语叫 熊猫 厉害厉害,很接地气 一个基于numpy的库 干啥的? 做数据分析用的 而数据分析是python体系下一个...
    99+
    2023-01-31
    数据 Python pandas
  • Python基础知识点分析
    本篇内容介绍了“Python基础知识点分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python简介Python的历史1989年圣诞节:...
    99+
    2023-06-02
  • Python数据分析之pandas函数详解
    目录一、apply和applymap二、排序三、处理缺失数据一、apply和applymap 1. 可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df...
    99+
    2022-11-12
  • Python Pandas的知识点有哪些
    本篇内容介绍了“Python Pandas的知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么要学习Pandas那么问题来了:...
    99+
    2023-06-30
  • Python基础知识实例分析
    这篇文章主要介绍了Python基础知识实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python基础知识实例分析文章都会有所收获,下面我们一起来看看吧。在Python 语言中,对象是通过引用传递的。多元...
    99+
    2023-06-17
  • Python变量的知识点分析
    这篇文章给大家分享的是有关Python变量的知识点分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Python变量在大多数语言中,为一个值起一个名字时,把这种行为称为“给变量赋值”或“把值存储在变量中”。不...
    99+
    2023-06-15
  • Python的Pandas时序数据实例分析
    这篇文章主要讲解了“Python的Pandas时序数据实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的Pandas时序数据实例分析”吧!Pandas时序数据前言 在数据分...
    99+
    2023-06-29
  • Python数据分析之pandas比较操作
    目录一、比较运算符和比较方法二、两个DataFrame比较三、两个Series比较四、与数字或字符串比较五、与array进行比较一、比较运算符和比较方法 比较运算符用于判断是否相等和比较大小,Python中的比较运算...
    99+
    2022-06-02
    Python pandas比较操作 python pandas比较运算符
  • Python数据分析 Pandas Series对象操作
    目录一、Pandas Series对象Series数据结构创建Series对象二、Series对象的基本操作Series 常用属性Series 常用方法Series 运算一、Pand...
    99+
    2022-11-11
  • Python数据分析Pandas Dataframe排序操作
    目录1.索引的排序2.值的排序前言: 数据的排序是比较常用的操作,DataFrame 的排序分为两种,一种是对索引进行排序,另一种是对值进行排序,接下来就分别介绍一下。 1.索引的排...
    99+
    2022-11-13
  • Python Pandas数据结构的示例分析
    这篇文章将为大家详细讲解有关Python Pandas数据结构的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 Pandas介绍2008年WesMcKinney开发出的库专门用于数据挖...
    99+
    2023-06-29
  • OLAP与数据分析知识点有哪些
    这篇文章主要介绍“OLAP与数据分析知识点有哪些”,在日常操作中,相信很多人在OLAP与数据分析知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”OLAP与数据分析知识点有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-03
  • 强大的数据分析工具——Pandas操作、易错点、知识点三万字详解
    一、 Pandas数据结构 1.Series 2.DataFrame 3.从DataFrame中查询出Series DataFrame: 二维数据、整个表格、多行多列 Series:一维数据,一行或者一列  import pandas ...
    99+
    2023-09-07
    pandas python 数据分析
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作