蚂蚁学Python-Pandas从入门到实战的系列课

Pandas数据读取

 

数据查看

#查看数据的形状,返回(行数、 列数)    data.shape

#查看列名列表  data.columns

#查看索引列   data.index

#查香每列的数据类型    data.dtypes

数据结构

Series

Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引)组成。索引和DataFrame一样,但只有行索引,没有列索引,因为是一维数据。

DataFrame

DataFrame是一个表格型的数据结构,●每列可以是不同的值类型(数值、字符串、布尔值等)

●既有行索引lindex,也有列索引|columns

●可以被看做由Series组成的字典

从DataFrame中查询出Series

●如果只查询一行、一列,返回的是pd.Series

●如果查询多行、多列,返回的是pd.DataFrame

查列:单列 - data[‘列名’]   多列 - data[[‘列名1’,’列名2’]]

查行:单行 - data.loc[1]    多行 - data.loc[1:3]  包含末元素

设置索引:data.set_index(‘Time’,inplace = True) inplace为Ture就是不创建新对象,修改原数据,False就是不动原数据创建一个新对象!

使用数值区间进行范围查询:data.loc[‘01-01’:’01-05’ , ‘3’:’6’] 包含开始,也包括结束

 

判断列值,结果组成新列

数据排序

Series的排序:

Series.sort_ values(ascending=True, inplace=False)

参数说明:

●ascending:默认为True升序排序,为False降序排序

●inplace: 是否修改原始Series

例:df[" aqi"]. sort_ values (ascending=False)

DataFrame的排序:

DataFrame.sort_values(by, ascending=True, inplace=False)

参数说明:

●by:字符串或者List<字符串>, 单列排序或者多列排序

●ascending: bool或者List, 升序还是降序,如果是list对应by的多列

●inplace:是否修改原始DataFrame

例:#两个字段都是降序

df.sort_values (by= [“aqiLevel”,”bWendu” ],ascending= [True,False])

字符串处理

Pandas的字符串处理:

1.使用方法:先获取Series的str属性, 然后在属性上调用函数;

2.只能在字符串列上使用,不能数字列上使用;

3. Dataframe上没有str属性和处理方法

4. Series.str并不是Python原生字符串,而是自己的一套方法,不过大部分和原生str很相似;

 

Pandas的axis参数

●axis=0或者"index":

如果是单行操作,就指的是某一行

如果是聚合操作,指的是跨行cross rows。例:求平均值mean,求和

指定了按哪个axis,就是这个axis要动起来(类似被tor遍历,其它的axis保持不动

Df.mean(axis=0)  得到每列的平均值,得到一行。

Df.mean(axis=1)  得到每行的平均值,得到一列。

●axis=1或者"columns":

.如果是单列操作,就指的是某一列

如果是聚合操作, 指的是跨列cross columns。

Pandas的index索引

1、更方便的数据查询;

Df.set_index(‘ID’,inplace=True,drop=False)

#使用index的查询方法

df. loc [500]. head (5)

#使用column的condition查询方法

df. loc[df["ID"] == 500]. head()

 

2、使用index可以获得性能提升;

●如果index是唯一的, Pandas会使用哈希表优化,查询性能为0(1);

●如果index不是唯一的, 但是有序, Pandas会使用二分查找算法, 查询性能为O(logN);

●如果index是完全随机的,那么每次查询都要扫描全表,查询性能为O(N);

所以有查询操作时,需要排序。

 

3、自动的数据对齐功能;

包括series 和dataframe。

可以对齐部分,可执行语句

无对齐部分,为Nan

 

4、更多更强大的数据结构支持;

●Categoricallndex, 基于分类数据的Index,提升性能;

●Multilndex, 多维索引,用于groupby多维聚合后结果等;

●DatetimeIndex, 时间类型索引,强大的日期和时间的方法支持;

 

索引递增的——df.index.is_monotonic_increasing

索引是否唯一——df.index.is_unique

Pandas批量拆分Excel与合并Excel

1、读取文件

 

 

 

2、将一个大Excel等分拆成多个Excel

Df.iloc方法,利用数字索引进行拆分

 

 

 

3、合并多个小Excel到一个大Excel

 

 

 

Groupby 分组统计

1、分组使用聚合函数做数据统计

 

B列不是数字,就忽略了

 

 

 

2、For遍历group

 

 

 

 

3、实战,天气温度

 

 

 

MultiIndex 分层索引

使用Groupby聚合后,可能会产生两个索引。可以表达更高维度数据的形式。

更方便的进行数据筛选,

  1. Series的分层索引MultiIndex

 

 

 

2、Series有多层索引Multilndex怎样筛选数据?

 

 

3、DataFrame的多层索引Multilndex

 

 

4、DataFrame有多层索引Multilndex怎样筛选数据?

●元组(key1,key2)代表筛选多层索引,其中key1是索引第一级, key2是第二级,比如key1=JD, key2=2019- 10-02

●列表[key1,key2]代表同一层的多个KEY,其中key1和key2是并列的同级索引,比如key1=JD, key2=BIDU

 

Map、apply、applymap 数据转换

1. map:只用于Series,实现每个值->值的映射;

2. apply:用于Series实现每个值的处理,用于Dataframe实现某个轴的Series的处理;

3. applymap:只能用于DataFrame,用于处理该DataFrame的每个元素;

 

itertuples 

对DataFrame对象进行遍历很方便的函数

iterrows() : 将DataFrame迭代成(index ,series)

iteritems(): 将DataFrame迭代成(列名,series)

itertuples(): 将DataFrame迭代成元组

getattr() 直接获取元组内指定的值

 

通过列明索引访问对应的值

 

 

 

通过Index 索引获取对应的值

 

 

Concat数据合并函数

pd.concat(object,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False)

https://blog.csdn.net/qq_42535601/article/details/86523689

●objs: 一个列表,内容可以是DataFrame或者Series, 可以混合

●axis: 默认是0代表按行合并,如果等于1代表按列合并

●join: 合并的时候索引的对齐方式,默认是outer join, 也可以是inner join

●ignore_ index: 是否忽略掉原来的数据索引

 

Join数据合并函数

https://blog.csdn.net/qq_42535601/article/details/86528094

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)

●left, right: 要merge的dataframe或者有name的Series

●how: Join类型, left, 'right, 'outer, 'inner'

●on: join的key, left和right都需要有这个key

●left_on: left的df或者series的key

●right_on: right的df或者series的key

●left_index, right_index: 使用index而不是普通的column做join

●suffixes: 两个元素的后缀,如果列有重名,自动添加后缀,默认是(‘_x,'_y)

https://blog.csdn.net/qq_21840201/article/details/80727504

 

Stack、pivot——数据透视

将列式数据变成二维交叉形式,便于分析,叫做重塑或透视。

 

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值