转自蚂蚁学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.只能在字符串列上使用,不能数字列上使用;
-
Dataframe上没有str属性和处理方法
-
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 数据转换
-
map:只用于Series,实现每个值->值的映射;
-
apply:用于Series实现每个值的处理,用于Dataframe实现某个轴的Series的处理;
-
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