《Python3爬虫、数据清洗和可视化实战》之阅读不懂处、主要代码总结(9章)

《Python3爬虫、数据清洗和可视化实战》

零一 韩要宾 黄园园 著


第九章:pandas数据清理

9.1 数据读写、选择、整理和描述

Pandas是用来数据清洗的Python库,由于它的依赖库很多,所以建议还是下载anaconda,里面内置了相关库。

9.1.1 读取CSV数据
df = pd.read_csv(“csv_path”,delimiter=”,”,encoding=””)   

参数说明:
“csv_path”,CSV文件路径;delimiter=”,”:分隔方式;encoding=””:文件编码格式。

9.1.2 向CSV写入数据
df.to_csv(“csv_path”,columns=[‘value1’,’value2’],index=False,header=True)	

参数说明:
“csv_path”文件路径,columns=[‘value1’,’value2’]:需要写入的数据,index=False:将DataFrame保存成文件,并忽略索引信息(True为默认值,保存索引信息),header=True

查看表中的描述性统计信息

df.describe()

9.2 数据分组,分割,合并和变形

9.2.1数据分组

Groupby:

Means = df[“成交量”].groupby(df[“成交量”],df[“卖家”]).mean()
>>>Means

size方法:返回一个含有各个分组大小的Series

9.2.2数据分割
df1=df[30:40][[‘位置’,’卖家’]]	

#df1中包含第30-39行数据
9.2.3数据合并

Pandas包含三种内置的合并数据集方法:

Pandas.merge根据一个或多个键将多个DataFrame连接起来
Pandas.concat可以沿着一个轴将多个对象堆叠起来
Combine_first可以将重叠部分合并,用以填充缺失部分
Pandas.merge(df1,df2,on=” Column_name”,how=”inner/outer/left”,left_index=True,right_index=true)

参数说明:
On:合并相同列名的列,默认会选择相同列名。
How:包含inner(内连接),outer(外连接),left(左连接),right(右连接)

内连接两个表中相同数据合并输出
外连接两个表中全部数据合并输出
左连接以左边表(df1)为基础,添加df1中没有的行属性(从df2中找新数据)
左连接以右边表(df2)为基础,添加df2中没有的行属性(从df1中找新数据)

left_index:将左边表(df1)索引作为连接键
right_index:将右边表(df2)索引作为连接键(df1.join(df2):join方法同样可以将索引作为连接键使用)

Pandas.concat([s1,s2,s3]) #沿着s1,s2,s3的轴合并在一起

9.2.4 数据变形

Data.stack()方法:将Data的列转换为行
Data.unstack()方法:将Data的行转换为列


9.3 缺失值、异常值和重复值处理

9.3.1 缺失值处理

查看缺失值:df1.isnull()
删除行:df1.dropna()
代替缺失值:df1.fillna(“代替值”)
df1.fillna(method=”pad/bfill”,limit=1) #pad使用前一个同属性的数据代替空值;fill使用后一个同属性的数据代替空值;limit表示每列代替空值的数目

9.3.3 移除重复值

判断是否存在重复值:df1.duplicated()
删除重复数据:df1.drop_duplicates()

9.4 时序数据处理

9.4.1 日期/时间数据转换
import time 
>>>Time.time()							#输出系统时间戳
>>>time.localtime()						#输出系统时间
>>>time.mktime(time.localtime())		#将系统时间转化为时间戳
9.4.2 时序数据基础操作
import datetime
import numpy as np
import pandas as pd

#periods表示输出几天(从2019-05-17开始计算);freq表示按照什么单位生成序列(M/D/H:月/天/小时)
Pd.date_range(“2019-05-17”,periods=31,freq=”M/D/H”)

"Life's a mixed bag, no matter who you are."--《About Time》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值