ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

转自蚂蚁学python :pandas 使用方

2022-06-20 22:31:20  阅读:211  来源: 互联网

标签:index False python Series 转自 DataFrame 索引 pandas axis


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.只能在字符串列上使用,不能数字列上使用;

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

  2. 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聚合后,可能会产生两个索引。可以表达更高维度数据的形式。

更方便的进行数据筛选,

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——数据透视
将列式数据变成二维交叉形式,便于分析,叫做重塑或透视。
————————————————
版权声明:本文为CSDN博主「team39」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/team39/article/details/112971461

标签:index,False,python,Series,转自,DataFrame,索引,pandas,axis
来源: https://www.cnblogs.com/vmsky/p/16395026.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有