Pandas数据载入与预处理(详细的数据Python处理方法)

黎明之道 等级 378 0 0

Pandas数据载入与预处理

对于数据分析而言,数据大部分来源于外部数据,如常用的CSV文件、Excel文件和数据库文件等。Pandas库将外部数据转换为DataFrame数据格式,处理完成后再存储到相应的外部文件中。

NumPy常用的导入格式:import pandas as pd

一、数据载入

读取文本文件

文本文件是一种由若干行字符构成的计算机文件,它是一种典型的顺序文件。

txt文件:是Windows操作系统上附带的一种文本格式,文件以.txt为后缀。

CSV文件:是Comma-Separated Values的缩写,用半角逗号(’,’)作为字段值的分隔符。

Pandas中使用read_table来读取文本文件:
pandas.read_table(filepath_or_buffer, sep=’\t’, header=’infer’, names=None, index_col=None, dtype=None, engine=None, nrows=None)

Pandas中使用read_csv函数来读取CSV文件:
pandas.read_csv(filepath_or_buffer, sep=’,’, header=’infer’, names=None, index_col=None, dtype=None, engine=None, nrows=None)

read_table和read_csv常用参数及其说明:
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)

文本文件的存储

文本文件的存储和读取类似,结构化数据可以通过pandas中的to_csv函数实现以CSV文件格式存储文件。

DataFrame.to_csv(path_or_buf = None, sep = ’,’, na_rep, columns=None, header=True, index=True, index_label=None, mode=’w’, encoding=None)

Excel文件的读取

Pandas提供了read_excel函数读取“xls”和“xlsx”两种excel文件,其格式为:
pandas.read_excel(io, sheetname, header=0, index_col=None, names=None, dtype)

read_excel函数和read_table函数的部分参数相同.
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
Excel文件的存储

将文件存储为Excel文件,可使用to_excel方法。其语法格式如下:
DataFrame.to_excel(excel_writer=None, sheetname=None’, na_rep=”, header=True, index=True, index_label=None, mode=’w’, encoding=None)

to_csv方法的常用参数基本一致,区别之处在于指定存储文件的文件路径参数excel_writer,增加了一个sheetnames参数,用来指定存储的Excel sheet的名称,默认为sheet1。

2.数据合并

merge数据合并

merge函数是通过一个或多个键将两个DataFrame按行合并起来,与SQL中的 join 用法类似,Pandas中的数据合并merge( )函数格式如下:
merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

merge方法主要参数及说明:
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
concat数据连接

如果要合并的DataFrame之间没有连接键,就无法使用merge方法。pandas中的concat方法可以实现,默认情况下会按行的方向堆叠数据。如果在列向上连接设置axies = 1即可。
例如:

Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
运行结果:

Pandas数据载入与预处理(详细的数据Python处理方法)
例如:

Pandas数据载入与预处理(详细的数据Python处理方法)
运行结果:

Pandas数据载入与预处理(详细的数据Python处理方法)
combine_first合并数据

如果需要合并的两个DataFrame存在重复索引,则使用merge和concat都无法正确合并,此时需要使用combine_first方法。

例如:
Pandas数据载入与预处理(详细的数据Python处理方法)
运行结果:
Pandas数据载入与预处理(详细的数据Python处理方法)

3.数据清洗

检测与处理缺失值

isnull()函数可以直接判断某列中的哪个数据为NaN,利用isnull().sum()可以统计缺失值的缺失数目。

string_data = pd.Series(['aardvark', 'artichoke', np.nan, 'avocado'])
print(string_data)
string_data.isnull() 

缺失值统计:
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
缺失值的处理:

在缺失值的处理方法中,删除缺失值是常用的方法之一。通过dropna方法可以删除具有缺失值的行。

dropna方法的格式:
dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

dropna的参数及其使用说明:
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)

填充缺失值:

缺失值所在的特征为数值型时,通常利用其均值、中位数和众数等描述其集中趋势的统计量来填充;缺失值所在特征为类别型数据时,则选择众数来填充。

Pandas库中提供了缺失值替换的方法fillna,格式如下:DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)

检测与处理重复值

在DataFrame中利用duplicates方法判断各行是否有重复数据。duplicates方法返回一个布尔值的series,反映每一行是否与之前的行重复。

Pandas通过drop_duplicates删除重复的行,格式为:
drop_duplicates(self, subset=None, keep=’first’, inplace=False)

Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
drop_duplicates的主要参数及其说明:
Pandas数据载入与预处理(详细的数据Python处理方法)
使用drop_duplicates方法去重时,当且仅当subset参数中的特征重复时候才会执行去重操作,去重时可以选择保留哪一个或者不保留。

Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
默认保留的数据为第一个出现的记录,通过传入keep = ’last’可以保留最后一个出现的记录。

Pandas数据载入与预处理(详细的数据Python处理方法)
检测异常值

简单的数据统计方法中常用散点图、箱线图和3σ法则检测异常值。

散点图方法: 通过数据分布的散点图发现异常数据。

Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)

箱线图分析: 利用数据中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据。
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)

3σ法则: 在3σ原则下,异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值。Pandas数据载入与预处理(详细的数据Python处理方法)

数据转换:

在pandas中通过replace进行数据值的替换。
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
利用函数或映射进行数据转换:
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理(详细的数据Python处理方法)
在Pandas中可以自定义函数,然后通过map方法实现。

4.数据标准化

离差标准化数据
离差标准化是对原始数据所做的一种线性变换,将原始数据的数值映射到[0,1]区间。转换公式如下所示。
Pandas数据载入与预处理(详细的数据Python处理方法)
标准差标准化数据
标准差标准化又称零均值标准化或z分数标准化,是当前使用最广泛的数据标准化方法。
Pandas数据载入与预处理(详细的数据Python处理方法)

5.数据转换

类别型数据的哑变量处理

哑变量( Dummy Variables)是用以反映质的属性的一个人工变量,是量化了的自变量,通常取值为0或1。

利用pandas库中的get_dummies函数对类别型特征进行哑变量处理。

pandas.get_dummies(data, prefix = None, prefix_sep = '_', dummy_na = False, columns = None, sparse = False, drop_first=False)

get_dummies方法的主要参数及其说明:

Pandas数据载入与预处理(详细的数据Python处理方法)
连续型变量的离散化

  1. 等宽法
    Pandas提供了cut函数,可以进行连续型数据的等宽离散化。

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3)

cut方法的主要参数及其说明:

Pandas数据载入与预处理(详细的数据Python处理方法)

  1. 等频法
    cut函数虽然不能够直接实现等频离散化,但可以通过定义将相同数量的记录放进每个区间。

  2. 聚类分析法
    一维聚类的方法包括两步,首先将连续型数据用聚类算法进行聚类,然后处理聚类得到的簇,为合并到一个簇的连续型数据做同一标记。

收藏
评论区

相关推荐

2021最全Python入门学习路线
我将在这里带大家快速入门Python,本公众号会专注于Python爬虫、数据分析、数据可视化、办公自动化、Web开发等等 然后接下来会给大家一些学习路线(思维导图),方便大家找到适合自己的学习方向。无论你打算做什么,只要是和Python相关的,这个学习路线绝对都是好用的。 但我特别不希望有些朋友一上来就学习numpy、pandas、matplotlib相
Pandas案例精进 | 结构化数据非等值范围查找 ①
(https://imghelloworld.osscnbeijing.aliyuncs.com/dac5483b3517ff8a0968fc75987d12ad.png) 大家好,我是小五🐶 欢迎来到「Pandas案例精进(https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzU5Nzg5
Pandas案例精进 | 续集:自动分割汇总表写入到子表
(https://imghelloworld.osscnbeijing.aliyuncs.com/0d046e77f6ee65ce132919966585165a.png) 大家好! 欢迎来到「Pandas案例精进」专栏(https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzU5Nzg5OD
Pandas案例精进 | 自动分割汇总表写入到子表
(https://imghelloworld.osscnbeijing.aliyuncs.com/f5b70d401be96176067dfe8304143ead.png) 大家好! 欢迎来到「Pandas案例精进」专栏 今天分享的是一个之前的案例,里面涉及的方法可能有些过时,但处理思想仍有较高的参考价值。 Pandas案例需求
Pandas统计分析基础(基础篇,新手必看)
Pandas统计分析基础Pandas(Python Data Analysis Library)是基于NumPy的数据分析模块,它提供了大量标准数据模型和高效操作大型数据集所需的工具,可以说Pandas是使得Pyth
Pandas数据载入与预处理(详细的数据Python处理方法)
Pandas数据载入与预处理对于数据分析而言,数据大部分来源于外部数据,如常用的CSV文件、Excel文件和数据库文件等。Pandas库将外部数据转换为DataFrame数据格式,处理完成后再存储到相应的外部文件
Python数据分析实战(2)使用Pandas进行数据分析
一、Pandas的使用 1.Pandas介绍Pandas的主要应用包括: 数据读取 数据集成 透视表 数据聚合与分组运算 分段统计 数据可视化Pandas的使用很灵活,最重要的两个数据类型是DataFrame和Series。对DataFrame最直观的理解是把它当成一个Excel表格文件,如下:索引是从0开始的,也
Python数据分析实战(3)Python实现数据可视化
一、数据可视化介绍数据可视化是指将数据放在可视环境中、进一步理解数据的技术,可以通过它更加详细地了解隐藏在数据表面之下的模式、趋势和相关性。Python提供了很多数据可视化的库: matplotlib是Python基础的画图库,官网为,在案例地址中介绍了很多种类的图和代码示例。 pandas是在matplotlib的基础上实现
分享5个高效的pandas函数!
熟练掌握pandas函数都能帮我们在数据分析过程中节省时间。pandas还有很多让人舒适的用法,这次就为大家介绍5个pandas函数!本文来源towardsdatascience,作者Soner Yıldırım,由Python大数据分析编译。1\. explodeexplode用于将一行数据展开成多行。比如说dataframe中某一行其中一个元素包含多个同
手把手教你用Python替代Mapinfo更快查找两张表中距离最近的点
一、前言大家好,我是崔艳飞。工作中有时需要把A表中的经纬度点,从B表中匹配一个最近的点出来,用Mapinfo也可以实现,但处理速度慢,特别是数据量大时根本处理不动,此时用Python就能轻松实现,还能显示处理进度,详细如下。 二、项目目标用Python实现两张表间最近点的计算。 三、项目准备软件:PyCharm需要的库:pandas, xlrd,os
干货|利用Python自动根据数据生成降雨量统计分析报告
作者:小小明 简介:Pandas数据处理专家,10余年编码经验,至今已帮助过成千上万名数据从业者解决工作实际遇到的问题,其中数据处理和办公自动化问题涉及的行业包括会计、HR、气象、金融等等,现为菜J学Python核心技术团队成员之一。 点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤今夜偏
再见 for 循环!pandas 提速 315 倍!
来源:Python数据科学 作者:东哥起飞上一篇分享了一个从时间处理上的加速方法「」,本篇分享一个更常用的加速骚操作。for是所有编程语言的基础语法,初学者为了快速实现功能,依懒性较强。但如果从运算时间性能上考虑可能不是特别好的选择。本次东哥介绍几个常见的提速方法,一个比一个快,了解pandas本质,才能知道如何提速。下面是一个例子,数据获取方式见文末。
总结了pandas提取数据的15种方法,统统只需1行代码,真香!
pandas是python数据分析必备工具,它有强大的数据清洗能力,往往能用非常少的代码实现较复杂的数据处理今天,鸟哥总结了pandas筛选数据的15个常用技巧,主要包括5个知识点:1.比较运算:、<、、、<、!2.范围运算:between(left,right)3.字符筛选:str.contains(pattern或字符串,naFalse)4.逻辑运算:&
14个pandas神操作,手把手教你写代码
「数仓宝贝库」,带你学数据!导读: Pandas是Python数据分析的利器,也是各种数据建模的标准工具。本文带大家入门Pandas,将介绍Python语言、Python数据生态和Pandas的一些基本功能。 在Python语言应用生态中,数据科学领域近年来十分热门。作为数据科学中一个非常基础的库,Pandas受到了广泛关注。Pandas可以将现实中来
14个pandas神操作,手把手教你写代码
「数仓宝贝库」,带你学数据!导读:Pandas是Python数据分析的利器,也是各种数据建模的标准工具。本文带大家入门Pandas,将介绍Python语言、Python数据生态和Pandas的一些基本功能。 在Python语言应用生态中,数据科学领域近年来十分热门。作为数据科学中一个非常基础的库,Pandas受到了广泛关注。Pandas可以将现实中来源