公众号:尤而小屋
作者:Peter
编辑:Peter
今天小编又从26个字母中精选出22个Pandas常用的函数,将它们的使用方法简单介绍给大家,详细内容可以查看官网学习。
其中o、y、z没有相应的函数。之前写过一篇文章,可以参考学习:
![176a367fa4c52a8fee3b9a1ef9365605.png](https://i-blog.csdnimg.cn/blog_migrate/cde48ab9d68695e823d7bd1b75819a36.png)
import pandas as pd
import numpy as np
apply函数
Pandas中一个很实用的函数,下面模拟了一份数据:
![55725b87c55880bf6ec85e2bb39dc5bb.png](https://i-blog.csdnimg.cn/blog_migrate/18d324218ca9895b66fb697a369e4123.png)
我们分别将python的内置函数、自定义函数、匿名函数传给apply函数:
![6527a591f48921d194a8c25b573deae2.png](https://i-blog.csdnimg.cn/blog_migrate/4dd02da2b8dc25bb12d70134cada3df2.png)
![c6af2378be2124bfe0037e980d2c3a17.png](https://i-blog.csdnimg.cn/blog_migrate/ba0698368a0ff372ae0ec5ace49dd31d.png)
使用Python的匿名函数来进行传递:
![7479b81a6632dbf2070c5e5258c5f418.png](https://i-blog.csdnimg.cn/blog_migrate/626238359a7dccada1edb3f58c6341eb.png)
between_time
start_time,
end_time,
include_start=NoDefault.no_default,
include_end=NoDefault.no_default,
inclusive=None,
axis=None
来自官网的案例:
![b067643adfe5730ed5619db035bdfc92.png](https://i-blog.csdnimg.cn/blog_migrate/a47a80bec60b70cb0afc8cf2e8063b7a.png)
如果在参数中,开始时间大于结束时间,则会呈现不同的结果:
![5990cdcdb4759183e7508d8b022e474b.png](https://i-blog.csdnimg.cn/blog_migrate/ae33840648c2b74b4cd7db7ea4134643.png)
contains函数
针对Series中的包含字符信息:
![8c1488803fb1f78044f6cb125929abf0.png](https://i-blog.csdnimg.cn/blog_migrate/92259ab0ae0d23ab2eeedfdbd0852700.png)
drop_duplicates函数
删除数据中的重复值;可以选择根据某个或者多个字段来删除。
在删除数据的时候,默认保留的是第一条重复的数据,我们可以通过参数keep来指定保留最后一条
![82e5f29950b15be32798e0f7cb57bc60.png](https://i-blog.csdnimg.cn/blog_migrate/438c99ac0f2bf7d01b49cd0bc1940605.png)
expanding函数
这是一个窗口函数,实现的是一种类似累计求和的功能
DataFrame.expanding(
min_periods=1,
center=None,
axis=0,
method='single')
min_periods:每个窗口最少包含的观测值数量,小于该数量的窗口结果为NA。值可以是int,默认None。offset情况下,默认为1
center:把窗口的标签设置为居中,布尔型,默认False,居右
axis:默认为0,对列进行计算
method:single或者table
模拟了一份数据:
![924abd316466893611e4de4d7fefac20.png](https://i-blog.csdnimg.cn/blog_migrate/858f489fba53908354469d04f0acd233.png)
分别指定1-2-3不同的窗口数:
![a6281e1a7da1f6ba174195069f62d346.png](https://i-blog.csdnimg.cn/blog_migrate/5d7b0c321c5a12e2ba4f14d4a865a2a2.png)
我们发现:当窗口数大于前面的记录数,则累计和用NaN表示
filter函数
用来进行数据的过滤操作
items:表示包含的字段
regex:表示使用正则
![9406468973ba7f5d4c7f38c2fac8d4dd.png](https://i-blog.csdnimg.cn/blog_migrate/17503da070b446fcf39fe6e66e0ca466.png)
![80e9d9a812ef0a441919bd4cb17398ba.png](https://i-blog.csdnimg.cn/blog_migrate/ee3b049b9bf3003281d89069d0cd1788.png)
ge函数
进行比较的一个函数:ge表示greater equal
![55407919d474f71a43ae0101e29533fd.png](https://i-blog.csdnimg.cn/blog_migrate/a7d431a97806ed5854f5477b2a470df0.png)
hist函数
pandas内置的绘制直方图的函数
df4 = pd.DataFrame({
'length': [1.5, 0.5, 1.2, 0.9, 3],
'width': [0.7, 0.2, 0.15, 0.2, 1.1]
}, index=['pig', 'rabbit', 'duck', 'chicken', 'horse'])
hist = df4.hist(bins=3)
![fadf65caf12e6639c4426369f00c01ed.png](https://i-blog.csdnimg.cn/blog_migrate/402c94d73c0c74b05131f04e077a0bf4.png)
iterrows函数
iterrows函数用于对DataFrame进行迭代循环
![a7152723c0a7e1a04f6b402c6e5c886e.png](https://i-blog.csdnimg.cn/blog_migrate/5f5a8203bcc2b1cffcba8699637df581.png)
join函数
join函数用于合并不同的DataFrame
![7d6b0d05a9bfbec101bf9aa0b6ab7965.png](https://i-blog.csdnimg.cn/blog_migrate/d2278eab2d33e456c0b99af593190792.png)
![61033a3383b5bea2e6693a37c724bd51.png](https://i-blog.csdnimg.cn/blog_migrate/3ee6d50479db20d09ac447d4aeb16a03.png)
kurtosis函数
用于查找一组数据中的峰度值
kurtosis(axis=index(0) or columns(1),
skipna=True,
level=None,
numeric_only=None,
**kwargs)
axis:要应用的函数的轴。
skipna:计算结果时排除NA /null值。
level:如果轴是MultiIndex(分层),则沿特定级别计数,并折叠成标量。
numeric_only:仅包括float,int,boolean列。
**kwargs:要传递给函数的其他关键字参数
![9a4d6f9fae908e35f6444a34c50adee6.png](https://i-blog.csdnimg.cn/blog_migrate/58fd719e6ddbbce92bdead3e20e11650.png)
如果给定的数据中存在缺失值,可以使用参数skipna直接跳过:
s1 = pd.Series([10,None,16,14,30,None])
s1
0 10.0
1 NaN
2 16.0
3 14.0
4 30.0
5 NaN
dtype: float64
s1.kurtosis(skipna=True)
2.646199227619398
last函数
这是一个用在基于时间数据选择上的函数
i = pd.date_range('2018-04-09', # 起始日期
periods=4, # 周期
freq='2D') # 频率、间隔
i
DatetimeIndex(['2018-04-09', '2018-04-11', '2018-04-13', '2018-04-15'], dtype='datetime64[ns]', freq='2D')
![fea55d1a3288ea73bb70a1c3fd6fb219.png](https://i-blog.csdnimg.cn/blog_migrate/50c34951cac0f35ba9aac1c196a90757.png)
注意:在这里返回的日历中3个日的数据,而不是数据中的3行记录。13-14-15刚好是3天
max/min/mean/median
4个基于统计概念的函数:最大值、最小值、均值、中位数
![945b3d1acee6ef4d969e00c38378f6e1.png](https://i-blog.csdnimg.cn/blog_migrate/bfb0d4694fb1e21b0be98d878c534820.png)
nlargest函数
选择前n个的数据,其语法如下:
nlargest(n, columns, keep='first')
n:整数
columns:根据一个或者多个字段筛选
keep:选择first、last、all;默认是first
下面的例子来自官网:
df7 = pd.DataFrame({
'population': [59000000, 65000000, 434000,434000,
434000, 337000, 11300,11300, 11300],
'GDP': [1937894, 2583560 , 12011, 4520,
12128,17036, 182, 38, 311],
'alpha-2': ["IT", "FR", "MT", "MV", "BN",
"IS", "NR", "TV", "AI"]},
index=["Italy", "France", "Malta",
"Maldives", "Brunei", "Iceland",
"Nauru", "Tuvalu", "Anguilla"])
# 记录每个国家的人口数、GDP和名称2位大写
df7
![b43fe36d479a8820a5678b95f4c93b51.png](https://i-blog.csdnimg.cn/blog_migrate/77a484a975e1bb57873fbcc68061ab1b.png)
keep参数在不同取值下的结果:
![088ae59f50ae3c70600bfbe27d11bdd4.png](https://i-blog.csdnimg.cn/blog_migrate/bc3a8821ed66f9e8acfaccff9aa7e2ee.png)
pop函数
表示删除某个属性或者字段信息
![8aa355ecd7763b9f983bceddd00fa97d.png](https://i-blog.csdnimg.cn/blog_migrate/f95e1272315f9dedc0bcef18eb9d781b.png)
quantile函数
quantile就是分位数的意思,函数具体的语法规则为:
DataFrame.quantile(
q=0.5,
axis=0,
numeric_only=True,
interpolation=’linear’)
q : 数字或者是类列表,范围只能在0-1之间,默认是0.5,即中位数-第2四分位数
axis :计算方向,0-index, 1-columns,默认为 0
numeric_only:只允许是数值型数据
interpolation(插值方法):可以是 {‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}之一,默认是linear。
![e852dd4f90e4c4c20a13190035fe2acb.png](https://i-blog.csdnimg.cn/blog_migrate/c1db1f34389dc6c740bb4bf2d2bdee50.png)
reset_index函数
reset就是重置的含义,index就是行索引;连起来就是重置行索引
df9 = pd.DataFrame({"fruit":["苹果","香蕉","橙子","橙子","苹果","橙子"],
"amount":[100,200,130,150,88,40]})
df9
![8bb617e5b662f418f20f7433575268ee.png](https://i-blog.csdnimg.cn/blog_migrate/590e41356a4125eda1d6b8814f240e07.png)
当我们统计每种水果的总销售额,是否使用reset_index函数的不同效果:
![941cfb416bc61451f6a39fb9f7d6ff70.png](https://i-blog.csdnimg.cn/blog_migrate/52d3babd72b95ead797bd6325d112fbc.png)
select_dtypes函数
根据字段类型来筛选数据,可以包含或者排除一个或者多个字段类型的数据。
下面是官网的案例,稍作修改:生成了3个不同数据类型的字段
![8ab10038abd1540521e5c4a19cb2a583.png](https://i-blog.csdnimg.cn/blog_migrate/e06f22e0b8827259cac0ee8e23f0682a.png)
1、包含字段类型
![efe2a0e8262db0f41ed0e76c03508089.png](https://i-blog.csdnimg.cn/blog_migrate/df154933875ab7d6dc50014fc8f47bf0.png)
2、排除字段类型
![87346c423879d8ed50e40bc6b8b848cd.png](https://i-blog.csdnimg.cn/blog_migrate/ca0fb71336f6dd7edf18c62753217236.png)
take函数
也是选择数据的一个函数,具体语法为:
take(indices, axis=0, is_copy=None, **kwargs)
indices:选择位置:数组或者切片
axis:选择的轴,0-index,1-column,默认是0
is_copy:是否返回副本;从Pandas1.0开始
![07911b819dd2c2fdb0b2aecec900cd56.png](https://i-blog.csdnimg.cn/blog_migrate/89ebcb37bd76ca1ff1c44ca2ae3c2630.png)
下面是多个例子:
![7b9e9a9ea02500236ad5c189e1b182aa.png](https://i-blog.csdnimg.cn/blog_migrate/183d3b81f0d58d823c7da996a282de0a.png)
![d4403393dd809a5d561629449a708047.png](https://i-blog.csdnimg.cn/blog_migrate/648b7b16f4dd43a800613d2c88269709.png)
以第一个例子来解释,指定数据的记录为0和4。表示取出df10中的第1条和第5条数据(索引从0开始),而不是看我们自定义的索引号。
update函数
更新某个DataFrame数据框;模拟两个数据:
![00d117203d09a589b52ec219ef47eeca.png](https://i-blog.csdnimg.cn/blog_migrate/519c9e414086f1c669f93938794f9558.png)
第一次更新的结果:
![bc3efac39873edeea0364b382f499104.png](https://i-blog.csdnimg.cn/blog_migrate/730fa06c7a5aaa79e575887145818e45.png)
如果用于更新的数据中存在空值,则保持原来的数据不变
![c57a835fd221f54e5a5549ab4df9a5db.png](https://i-blog.csdnimg.cn/blog_migrate/bae9176ba7c2248952ea49ccba53361c.png)
var函数
用于求一组数据的方差
![32404d693d7d2c9ec4fac07495b0bf03.png](https://i-blog.csdnimg.cn/blog_migrate/c0281d941c9c2b4322c8b006f5a6cdca.png)
where函数
用于查找满足条件的数据
w = pd.Series(range(5))
w
0 0
1 1
2 2
3 3
4 4
dtype: int64
# 满足条件的显示;不满足的用空值代替
w.where(w>=2)
0 NaN
1 NaN
2 2.0
3 3.0
4 4.0
dtype: float64
# 不满足的用8替代
w.where(w>=2, 8)
0 8 # 8代替
1 8
2 2
3 3
4 4
dtype: int64
往期精彩回顾
适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
AI基础下载机器学习交流qq群955171419,加入微信群请扫码: