python数据处理模块pandas_数据处理工具--Pandas模块

本文深入探讨了Python数据处理模块Pandas,包括序列与数据框的构造、外部数据的读取(如文本文件、电子表格、数据库数据)、数据类型转换与描述统计分析、字符与日期数据处理、数据清洗方法(重复观测处理、缺失值处理、异常值处理)以及透视表功能和数据合并与连接操作。Pandas提供了强大的数据处理功能,是数据预处理和分析的重要工具。
摘要由CSDN通过智能技术生成

强大的数据处理模块Pandas,可以解决数据的预处理工作,如数据类型的转换、缺失值的处理、描述性统计分析和数据的汇总等

一、序列与数据框的构造

Pandas模块的核心操作对象为序列和数据框。序列指数据集中的一个字段,数据框为至少含有两个字段(或序列)的数据集。

1.构造序列

通过列表、元祖、Numpy中的一维数组构造序列均如序列1,第一列为序列的行索引(行号),自动从0开始;第二列为序列的实际值

通过字典构造不同,第一列为具体的行名称,对应字典中的键,第二列为序列的实际值,对应字典中的值。

还可以通过数据框中的某一列构建

2.序列元素的获取

对一维数组的索引方法和数学以及统计函数都可以用到序列上,但序列有特有的处理方法。

对通过字典类型构建的,可用行号,也可用行名称索引

如果需要对序列做数学函数计算,首选numpy模块

如果需要对序列做统计函数计算,首选序列的方法

3.构造数据框

数据框实际是一个数据集,行代表每一条观测,列代表各个变量。在一个数据库中可以存放不同数据类型的序列,而数组和序列只能存放同质数据。

手工构造数据框的话,首选字典方法,因为其他方法构造没有具体的变量名

还可以通过外部数据的读取构造

二、外部数据的读取

1.文本文件的读取

使用Pandas中的read_table函数或者read_csv函数

filepath_or_buffer:指定txt文件或csv文件所在的具体路径;

sep:指定原数据集中各字段之间的分隔符,默认为Tab制表符;

header:是否需要将原数据集中的第一行作为表头,默认将第一行用作字段名称;

names:如果原数据集中没有字段,可以通过该参数在数据读取时给数据框添加具体的表头;

index_col:指定原数据集中的某些列作为数据框的行索引(标签);

usecols:指定需要读取原数据集中的哪些变量名;

dtype:读取数据时,可以为原数据集的每个字段设置不同的数据类型;

converters:通过字典格式,为数据集中的某些字段设置转换函数

skiprows:数据读取时,指定需要跳过原数据集开头的行数;

skipfooter:数据读取时,指定需要跳过原数据集末尾的行数;

nrows:指定读取数据的行数;

na_values:指定原数据集中哪些特征的值作为缺失值;

skip_blank_lines:读取数据时是否需要跳过原数据集中的空白行,默认为True;

parse_dates:如果参数值为True,则尝试解析数据框的行索引;如果参数为列表,则尝试解析对应的日期列;如果参数为嵌套列表,则将某些列合并为日期列;如果参数为字典,则解析对应的列(即字典中的值),并生成新的字段名(即字典中的键);

thousands:指定原始数据集中的千分位符;

comment:指定注释符,在读取数据时,如果碰到行首指定的注释符,则跳过改行;

encoding:如果文件中含有中文,有时需要指定字符编码;

a=pd.read_table("F:\第5章 Python数据处理工具--Pandas\第五章 Python数据处理工具--Pandas\data_test01.txt",sep=",",skiprows=2,skipfooter=3,comment="#",encoding="utf8",thousands="&",parse_dates={"birthday":[0,1,2]})

a

原数据集用逗号分隔每一列,则改变sep参数,合并新字段birthday,comment参数指定跳过的特殊行,含有中文的重新编码,千分位符为了保证数值型数据的正常读入

2.电子表格的读取

使用read_excel函数

io:指定电子表格的具体路径;

sheetname:指定需要读取电子表格中的第几个Sheet,可以传递整数也可以传递具体的Sheet名称;

header:是否需要将数据集的第一行用作表头,默认为是需要的;

skiprows:读取数据时,指定跳过的开始行数;

skip_footer:读取数据是,指定跳过的末尾行数;

index_col:指定哪些列用作数据框的行索引(标签);

names:如果原数据集中没有字段,可以通过该参数在数据读取时给数据框添加具体的表头;

parse_cols:指定需要解析的字段;

parse_dates:如果参数值为True,则尝试解析数据框的行索引;如果参数为列表,则尝试解析对应的日期列;如果参数为嵌套列表,则将某些列合并为日期列;如果参数为字典,则解析对应的列(即字典中的值),并生成新的字段名(即字典中的键);

na_values:指定原始数据中哪些特殊值代表了缺失值;

thousands:指定原始数据集中的千分位符;

convert_float:默认将所有的数值型字段转换为浮点型字段;

converters:通过字典的形式,指定某些列需要转换的形式;

b=pd.read_excel(io="F:\第5章 Python数据处理工具--Pandas\第五章 Python数据处理工具--Pandas\data_test02.xlsx",header=None,converters={0:str},names=['ID',"name",'color',"price"])

b

对于第一列,实际上是字符型,为了避免数据读入时自动变成数值型字段,需要用converts参数

3.数据库数据的读取

需要先通过cmd命令输入pip install pymysql或者pysmsql(分别对应MYSQL和SQL Server)

CASE1:pymysql中的connect

host:指定需要访问的MySQL服务器;

user:指定访问MySQL数据库的用户名;

password:指定访问MySQL数据库的密码;

database:指定访问MySQL数据库的具体库名;

port:指定访问MySQL数据库的端口号;

charset:指定读取MySQL数据库的字符集,如果数据库表中含有中文,一般可以尝试将该参数设置为“utf8”或“gbk”;

CASE2:pymssql中的connect

参数含义也是一致的,所不同的是pymysql模块中connect函数的host参数表示需要访问的服务器,而pymssql函数中对应的参数是server

以MYSQL举例:

# 读入MySQL数据库数据

# 导入第三方模块

import pymysql

# 连接MySQL数据库

conn = pymysql.connect(host='localhost', user='root', password='test',

database='test&

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值