【Python】分享14条非常实用的Pandas函数方法,建议珍藏!!
今天和大家来分享几个十分好用的pandas函数,可能平时并不是特别的常见,但是却能够帮助我们在平时的工作、学习当中极大的提高效率,小编也希望读者朋友们在看完本文之后能够大有收获
1
ExcelWriter
使用ExcelWriter()可以向同一个excel的不同sheet中写入对应的表格数据,首先要创建一个writer对象,传入的主要参数为文件名及其路径
import pandas as pda = pd.DataFrame({"a": [1, 2, 3, 4, 5],"b": [2, 5, 6, 8, 10],
})
b = pd.DataFrame({"c": [5, 2, 3, 1, 4],"d": [2, 5, 7, 8, 10],
})
# 写入到同一个excel当中去
with pd.ExcelWriter("data.xlsx") as writer:a.to_excel(writer, sheet_name="a_sheet", index = False)b.to_excel(writer, sheet_name="b_sheet", index = False)
2
pipe
pipe()方法可以将一连串的函数以链式的结构嵌套在数据集当中,例如一个脏数据集当中有重复值、空值和极值等等,我们分别建立了3个函数来"drop_duplicates","remove_outliers"和"fill_nans"分别处理上面提到的3个问题,然后用pipe()方法将这三个函数以链式的结构串联起来,作用在同一个数据集上面,代码如下图所示
df_preped = (df.pipe(drop_duplicates).pipe(remove_outliers, ['price', 'carat', 'depth']).pipe(encode_categoricals, ['cut', 'color', 'clarity']))
3
explode
我们可以通过一个简单的例子来说明一下该函数的作用,
df = pd.Series([1, 6, 7, [46, 56, 49], 45, [15, 10, 12]]
).to_frame("dirty")
df.explode("dirty", ignore_index=True)
要是遇到一行的数据当中含有多个元素,explode()方法可以将这一行的数据展开到多行,ignore_index = True,意味着数据展开来之后,索引也会逐行地递增
4
between
between是用来提取出给定范围当中的值的,看下面的例子
data = {'name': ['John', 'Mike', 'Tom', 'Greg', 'Jim'],'income': [8000, 9000, 10000, 10000, 20000],'age': [20, 24, 25, 23, 28]}
df = pd.DataFrame(data)
我们挑选出收入在8000到10000范围之内的数据
df[df['income'].between(8000, 10000, inclusive='neither')]
5
convert_dtypes
pandas当中的convert_dtypes可以自动推断数据类型并且进行转化,例如
df = pd.DataFrame({'a':[1,2,3],'b':[0.55,0.66,1.55],'c':['Jack','Tony','Posi']}
)
df.dtypes
df.convert_dtypes().dtypes
6
select_dtypes
pandas当中的select_dtypes()方法功能是返回那些指定数据类型的列,当中的include顾名思义就是筛选出指定数据类型的列,例如下面我们挑选出是bool数据类型的数据来
a = pd.DataFrame({"a": [1, 2, 3, 4, 5],"b": [True, False, False, True, True],"c": ["John", "Tom", "Mike", "Jim", "Dylan"]
})
a.select_dtypes(include='bool')
而exclude就是排除掉指定数据类型的数据,将其他类型的数据筛选出来
a.select_dtypes(exclude='bool')
7
mask
pandas当中的mask()方法主要是对按照指定的条件,对数据集当中的数据进行替换,例如下面数据集当中对于大于0的数据替换成0
df = pd.DataFrame({"A":[12, 4, 5, 44, 1], "B":[5, 2, 54, 3, 2], "C":[20, 16, 7, 3, 8], "D":[14, 3, 17, 2, 6]})
# 将大于10的数字替换成0
df.mask(df > 10, 0)
8
nlargest和nsmallest
nlargest和nsmallest的作用在于可以让我们看到根据特定的列排序的最大或者是最小的若干列,例如
data = {'name': ['John', 'Mike', 'Tom', 'Greg', 'Jim'],'income': [2500, 4500, 5000, 3000, 2000],'age': [20, 24, 25, 23, 28]}
df = pd.DataFrame(data)
我们按照income这一列将数据排序,并且显示出最大的前3行
df.nlargest(3, 'income')
9
idxmax和idxmin
主要用来返回最大值或者是最小值的位置,也就是索引值
data = {'income': [8000, 9000, 10000, 10000, 20000],'age': [20, 24, 25, 23, 28]}
df = pd.DataFrame(data, index = ['John', 'Mike', 'Tom', 'Greg', 'Jim'])
我们找出income最高和最低的那个人是谁
df['income'].idxmax()
>>>> Jimdf['income'].idxmin()
>>> John
10
clip
在给出指定范围的前提下,对于数据集当中超出该范围的值进行更改,例如我们将范围限定在-4到6之间,超过6的数字会被设置为6,超过-4的数字会被设置为-4
data = {'col_0': [9, -3, 0, -1, 5],'col_1': [-2, -7, 6, 8, -5]}
df = pd.DataFrame(data)
df.clip(-4, 6)
11
at_time和between_time
pandas当中at_time()方法和between_time()方法主要是用来处理时间序列的数据,根据给出的时间点或者时间范围来筛选出数据
index = pd.date_range("2021-08-01", periods=100, freq="H")
data = pd.DataFrame({"col": list(range(100))}, index=index)
data.head()
我们筛选出那些下午2点的数据
data.at_time("14:00")
当然我们可以使用between_time这个方法来挑选出某个时间范围内的数
data.between_time("11:00", "12:00")
12
at和iat
我们一般用pandas当中的loc和iloc比较多,用来筛选出我们想要的数据,而at和iat也能够实现loc和iloc的功能,而且更加的快捷
data = {'name': ['John', 'Mike', 'Tom', 'Greg', 'Jim'],'income': [8000, 9000, 10000, 10000, 20000],'age': [20, 24, 25, 23, 28]}
df = pd.DataFrame(data)
# [index, label]
df.at[1, "income"]
>>> 9000# [index, index]
df.iat[2, 3]
>>> 1000
13
pandas styler
pandas还能够对数据集当中的数据进行上色,我们可以通过该方法将某些我们觉得重要的数据给标注出来,例如我们对数据集中每列的最大值和最小值标注出来
df = pd.DataFrame(np.random.randn(5, 5), columns=list('ABCDE'))# 我们标注出最大、最小的值
df.style.highlight_max(color = "yellow")
具体的可以去小编另外写的一篇文章中去看个究竟:厉害了,Pandas表格还能五彩斑斓的展示数据,究竟是怎么做到的呢?
14
hasnans
假如数据集当中存在空值,可以用hasnans方法来检查,要是有空值,则返回True,反之则返回False
s = pd.Series([2, 4, 6, "abcde", np.nan])
s.hasnans
>>>> True
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑黄海广老师《机器学习课程》课件合集
本站qq群851320808,加入微信群请扫码:
【Python】分享14条非常实用的Pandas函数方法,建议珍藏!!相关推荐
- Pandas 函数方法汇总一览查询(持续补充改进)
Pandas 函数方法汇总一览查询(持续补充改进) 文章目录 Pandas 函数方法汇总一览查询(持续补充改进) 初衷 Pandas 最最常用函数罗列 Pandas 函数用法示例 初衷 NumPy.P ...
- 【Python】推荐20个好用到爆的Pandas函数方法
今天分享几个不为人知的pandas函数,大家可能平时看到的不多,但是使用起来倒是非常的方便,也能够帮助我们数据分析人员大幅度地提高工作效率,同时也希望大家看完之后能够有所收获 items()方法 it ...
- 【Python基础】高效的10个Pandas函数,你都用过吗?
文章来源于Python大数据分析,作者朱卫军 文章来源:towardsdatascience 作者:Soner Yıldırım 翻译\编辑:Python大数据分析 ❞ Pandas是python中最 ...
- 超全整理100个 Pandas 函数,建议收藏!
来源丨吊车尾学院 人生苦短,快学Python! 今天给大家整理了100个Pandas常用的函数. 分别分为6类:统计汇总函数.数据清洗函数.数据筛选.绘图与元素级运算函数.时间序列函数和其他函数. 统 ...
- Pandas函数方法分类 参数说明+实例分析!!
Pandas描述性统计(函数用法说明) 函数索引(同样可以对 行列 进行操作) count() 非空数据的数量 sum() 所有值之和 mean() 所有值的平均值 median() 所有值的中位数 ...
- python如何从一个dataframe提取相应的行组成一个新的dataframe_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!...
本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作. 生成数据表 常见的生成数据表的方法有两 ...
- 从Excel到Python:最常用的36个Pandas函数
本文为粉丝投稿的<从Excel到Python>读书笔记 本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分 ...
- astype函数_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!
本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作. 生成数据表 常见的生成数据表的方法有两 ...
- 强势分享5款超级实用的办公软件,建议收藏!
!!!!!实用预警!!!!!! 小智整理了5款超级好用的办公软件,可以提高你的办公效率,直接上干货! 1.Cencrack在线工具箱 Cencrack是一个非常强大的工具箱软件,里面有大量实用的工具, ...
最新文章
- jsp error-page没有生效
- 定义一个有参宏判断一个字符是否在0~9之间
- 试试这款针对JAVA应用的开源防火墙!
- nginx源码安装教程(CentOS)
- CSP认证201403-3	命令行选项[C++题解]:模拟题、字符串处理、stringstream处理getline
- ASP.NET 网站管理工具中的“安全”制表页
- oracle sql execute elapsed time,SQL ordered by Elapsed Time 脚本
- 一个很好的自学网站~推荐一下
- 晨哥真有料丨常见的话题终结者与破解方法
- c语言lnk1104无法打开exe,error LNK1104: 无法打开文件“C:\Users\Administrator\Desktop\....\\xxxx.exe”...
- DLNg第三周:序列模型和注意力机制
- 时间序列-BP神经网络及与auo arima的比较
- TED如何和压力做朋友(第三天)
- 被脱库咋办?KMS 给你解决方案!
- TabHost控件应用
- OpenPose 参数说明
- 快速生成 .ftl 文件
- 大数据、数据分析、数据挖掘的差别
- 怎么用计算机按log以2为底,计算器上怎么按出log以2为底的数
- 【Mqtt】基于paho.mqtt.c库的mqtt客户端实现
热门文章
- wp如何代码实现锁屏
- 把Eclipse项目转换成Maven项目
- MYECLIPSE中快速解决项目的错误的方法
- 图像缩放的双线性内插值算法的原理解析
- C#下把txt文件数据读进sql server中存储所遇到的乱码问题
- 敏捷转型该怎么转?来看看这本书怎么说的吧
- oracle无监听程序的解决方法(PLSQL)Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务...
- [Python3] 003 变量类型概述 数字类型详叙
- (转) mysqldumpslow使用说明总结
- jQuery学习笔记:attr()与prop()的区别