Python数据分析库-Pandas在数据分析中的知识点(一)

各位客官姥爷好,欢迎回来。上节我们简单介绍了Pandas名称的由来,以及后续的安装工作。相信大家都有跟着一起安装,既然装好了那就用起来吧,本节我们来看看Pandas在数据分析过程会涉及到哪些常用的知识点。

01

重复数据的处理

1. 重复数据产生的原因

重复数据一般是由代码bug造成多次采集、录入人员的重复录入等原因造成。当然也有部分业务本身就有可能产生重复数据。

2. 重复数据的处理

大致分为两种方法:删除重复值和不做处理(或仅打标记)

1)删除重复数据

在Pandas里使用drop_duplicates函数用来删除数据表中重复的记录。

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

2)不做处理(或仅打标记)

结合自身的业务发现这部分重复数据是正常的,这时可以选择不做处理,也可以选择打标记(目的是方便后续分析产生重复数据的业务特征)

02

缺失值的处理

1. 缺失值产生的原因

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

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

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

2. 缺失值的处理

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

1)补齐缺失值:通过建好的数据模型或者数据自身的特征计算出来的值去填充缺失值,例如样本平均值。

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

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

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

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

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

3) 保留缺失值:在实际业务中可能会有一些非必填字段,而且这部分缺失属于一种正常现象的话,则在这里就可以选择保留下来。有时候缺失也是一种方向。

03

删除前后空格

有时候我们拿到的数据特别杂乱,比如好多字段中都有前/后空格,这时候需要借助Pandas的字符属性的strip()函数进行删除。

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

04

查看数据类型

通常拿到数据之后,一般都会先看一下各个字段的数据类型,方便后续处理时选择方法。

在Pandas中查看所有列的数据类型使用dtypes,查看单列使用dtype:

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

05

修改数据类型

在知道了字段的数据类型之后,但有时这个类型不利于我们数据处理,这时可以对其数据类型进行修改,在Pandas中使用astype()函数对数据类型修改。

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

06

字段的截取

如果想提取前两位字符,可以选择使用Pandas的字符属性的slice(start, end)函数可完成字段中字符的截取(即截取从start到end-1这些字符)比如截取前两位slice(0, 2).

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

07

字段的拆分

有时候拿到的数据里面包含各种分隔符,这时候可以考虑使用Pandas的字符属性的split()函数进行字段的拆分。

split(pat=None, n = -1, expand=True)函数包含三个参数:

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

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

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

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

08

字段的命名

字段的重命名有两种方式:一种是使用rename()函数, 另一种是直接设置columns参数。

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

09

字段的合并

在Pandas中使用merge()函数对字段进行合并操作。

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

10

字段的删除

有时候需要删除字段,比如与此次分析无关,再比如缺失值太多且无法重新采集可考虑删除该字段。在Pandas中利用drop()函数对字段进行删除。

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

删除Surname_Age字段后的结果:

以上就是本次的分享,欢迎各位客官姥爷关注我,方便您第一次时间收到【干货】!

(0)

相关推荐

  • Python中pandas透视表pivot

    一文看懂pandas的透视表pivot_table 一.概述 1.1 什么是透视表? 透视表是一种可以对数据动态排布并且分类汇总的表格格式.或许大多数人都在Excel使用过数据透视表,也体会到它的强大 ...

  • Numpy和Pandas性能改善的方法和技巧

    问题 设计的代码能hold住小规模数据 你准备将该代码用来处理真实场景的数据 但惊喜的是你的代码崩溃了 问题: 你的电脑只有16G内存,但现在却要应付50G大小的数据. 硬件解决办法 换装备,比如64 ...

  • pandas骚操作:transform 数据转换的 4 个常用技巧!

    来源:Python数据科学 作者:东哥起飞 大家好,我是东哥. 本篇是pandas100个骚操作系列的第 8 篇:transform 数据转换的 4 个常用技巧! 系列内容,请看

  • 30 个函数,加速你的数据分析处理速度!

    Pandas 是 Python 中最广泛使用的数据分析和操作库.它提供了许多功能和方法,可以加快「数据分析」和「预处理」步骤. 为了更好的学习 Python,我将以客户流失数据集为例,分享 「30」 ...

  • Pandas 必知必会的18个实用技巧,值得收藏!

    干净整洁的数据是后续进行研究和分析的基础.数据科学家们会花费大量的时间来清理数据集,毫不夸张地说,数据清洗会占据他们80%的工作时间,而真正用来分析数据的时间只占到20%左右. 所以,数据清洗到底是在 ...

  • 数据分析——Pandas合并数据,实现多表连接查询

    [导语] 学过Excel和MySQL,Pandas后,你会发现它们的都能处理数据,只是实现方式不同罢了,互相能起到互补的作用.那么,在工作中,工具没有好坏之分,只要能解决问题,都是好工具,关键是我们怎 ...

  • Python数据分析库-Pandas在数据分析中的知识点(二)

    各位客官姥爷好,欢迎回来.上节我们总结了Pandas在数据分析应用过程的部分知识点,我们这节紧接着这些内容,再来看一些常见的用法. 01  向量运算 我们这边先新建一个Dataframe import ...

  • Python数据分析库-Pandas的介绍与安装

    各位客官姥爷好,欢迎回来.我们之前的内容一直围绕着正则表达式展开,这次我们就讲点别的.既然我的公众号名称叫做转行学数据分析,那么我们今天就来讲讲数据分析有关的,一个常见的Python的数据分析库--P ...

  • 0.052秒打开100GB数据?这个Python开源库这样做数据分析

    来自公众号:AI科技大本营 作者:CSDN App 许多组织都在尝试收集和利用尽可能多的数据,以改善其经营方式,增加收入和提升影响力.因此,数据科学家面对50GB甚至500GB大小的数据集情况变得越来 ...

  • Python数据分析库-Numpy库在数据分析中的知识点(一)

    各位客官姥爷好,欢迎回来.细心的你们肯定发现在pandas知识点(二)一文中用到了numpy库,numpy库也是我们这些数据人经常用的python库之一,那么numpy又有哪些知识点呢?我们本节先来看 ...

  • Python数据分析库-Numpy库在数据分析中的知识点(二)

    各位客官姥爷好,欢迎回来.上节我们了解numpy中数组的创建方法,这节我们来看看数组都有哪些常用的属性,以及数组的浅拷贝与深拷贝的用法. 01  数组的属性 0.声明一个numpy的数组 np.ran ...

  • Python数据分析库-Numpy库在数据分析中的知识点(三)

    各位客官姥爷好,欢迎回来.上节我们了解了numpy数组的属性以及浅拷贝和深拷贝,这节我们来看看数组的其他用法. 01  改变数组的维度 0. 声明一个numpy的数组 x = np.random.ra ...

  • Python数据分析库-Numpy中矩阵的点积与乘法

    各位客官姥爷好,欢迎回来.上节我们了解了numpy中数组用法,听说numpy也可以创建矩阵,那我们这节来试试吧. 01  矩阵的用法 1. 创建矩阵的方法 #np.mat方法支持以下三种用法a = n ...

  • Python数据分析库有哪些?常见分类!

    众所周知,Python前景好.需求量大.薪资高.就业岗位多,除了基本的开发工作之外,还可以从事人工智能.数据分析.网络爬虫等岗位.那么说起数据分析,你知道Python常用数据分析库有哪些吗?我们一起来 ...

  • Python常用数据分析库有哪些?五大类介绍

    众所周知,Python前景好.需求量大.薪资高.就业岗位多,除了基本的开发工作之外,还可以从事人工智能.数据分析.网络爬虫等岗位.那么说起数据分析,你知道Python常用数据分析库有哪些吗?我们一起来 ...