精选22个Pandas函数!
共 3753字,需浏览 8分钟
· 2022-04-17
今天从26个字母中精选出22个Pandas常用的函数,将它们的使用方法简单介绍给大家,详细内容可以查看官网学习。
import pandas as pd
import numpy as np
apply函数
Pandas中一个很实用的函数,下面模拟了一份数据:
![](https://filescdn.proginn.com/8b56c93fbfdfd2807ed9f99332a89157/6d18aa3a61bbc38d64442f62e8df2cc0.webp)
我们分别将python的内置函数、自定义函数、匿名函数传给apply函数:
![](https://filescdn.proginn.com/5e231575e67ab857523c48a0f10bee7b/ae4c575fde9461d1d1aa3370c6d1a0dc.webp)
![](https://filescdn.proginn.com/b52c8695e1260c03d2d6dc018eece085/5d1cf69e297040fbb07a8d701841a71b.webp)
使用Python的匿名函数来进行传递:
![](https://filescdn.proginn.com/e372dc1a2ca802364e8b183cc02534d5/e3097bb223f6c45f974e229299af1c14.webp)
between_time
start_time,
end_time,
include_start=NoDefault.no_default,
include_end=NoDefault.no_default,
inclusive=None,
axis=None
来自官网的案例:
![](https://filescdn.proginn.com/0f645eee1e006481fdd13bf2ae7f00c8/7c571864eeee115327488a802dd64d90.webp)
如果在参数中,开始时间大于结束时间,则会呈现不同的结果:
![](https://filescdn.proginn.com/5bbc9089bf43f37cdb77cdcfb3913250/3af401c0201028cdcc196e46226f04bd.webp)
contains函数
针对Series中的包含字符信息:
![](https://filescdn.proginn.com/fe5c5bc7467e935a5e0417a91a87d9a5/d11c77e1250808608df3f1f1fc2d5983.webp)
drop_duplicates函数
删除数据中的重复值;可以选择根据某个或者多个字段来删除。
在删除数据的时候,默认保留的是第一条重复的数据,我们可以通过参数keep来指定保留最后一条
![](https://filescdn.proginn.com/cea126df315c823b227c463760c930dd/79b8f4e6215a8444e410a022db395e81.webp)
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
模拟了一份数据:
![](https://filescdn.proginn.com/2c1d4bbbbb74ab95fe70ddffcca445df/af8d0a9516a66b658af84cdd83876327.webp)
分别指定1-2-3不同的窗口数:
![](https://filescdn.proginn.com/ce06ca6afe2cf041c62400c209540b0b/80ff8ba082c29728fa505ff7d7cb3a2c.webp)
我们发现:当窗口数大于前面的记录数,则累计和用NaN表示
filter函数
用来进行数据的过滤操作
items:表示包含的字段 regex:表示使用正则
![](https://filescdn.proginn.com/6b8bbd8dca5b192f3e277776e72a3942/ca3c8c2d28313dbcb50f999881a3b53a.webp)
![](https://filescdn.proginn.com/645a85672e4c3de938384feb37893635/a45893f8948104a8eac154a23e37fd14.webp)
ge函数
进行比较的一个函数:ge表示greater equal
![](https://filescdn.proginn.com/c36b1cea65090d704dccb03275e30064/fda8569fb2d7d7313b3b6a9a4dc28be2.webp)
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)
![](https://filescdn.proginn.com/ef8277cbc7f0224e5891c4a8a17e98e2/dbbe1e4338d3e7baa09b881f07ccfb89.webp)
iterrows函数
iterrows函数用于对DataFrame进行迭代循环
![](https://filescdn.proginn.com/862a90e979415b567e670e332a0e0004/ec1317371b2c77e832b4e4562ef1fb54.webp)
join函数
join函数用于合并不同的DataFrame
![](https://filescdn.proginn.com/dae6368d59f0cc4efd72f306a6071055/42fe64360833e04289ada705f3ed05b8.webp)
![](https://filescdn.proginn.com/5dd33c1627baf18416d94aa0bc3d510d/ddbbc57e85e8217420fafb93d25e4d83.webp)
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:要传递给函数的其他关键字参数
![](https://filescdn.proginn.com/6ed5bfa2b44de4f60d9e0870ce1f069c/918e66bc9365b47e3600416ed0cb9685.webp)
如果给定的数据中存在缺失值,可以使用参数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')
![](https://filescdn.proginn.com/39ae7333709ebd0288f353017308c4b0/c4ac18c3dd9f5077c91151903bf69e08.webp)
注意:在这里返回的日历中3个日的数据,而不是数据中的3行记录。13-14-15刚好是3天
max/min/mean/median
4个基于统计概念的函数:最大值、最小值、均值、中位数
![](https://filescdn.proginn.com/0c8aa1bed73257d7e1a64a7ec72328b7/0d842e6c9c47880ac504db600a172ca8.webp)
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
![](https://filescdn.proginn.com/163052d5bc492d99a86c5ae549c18852/f1514d6b085a169f4073b01035e5a917.webp)
keep参数在不同取值下的结果:
![](https://filescdn.proginn.com/59c8d43025f7d226f6a6332f5a16ea15/47c0a9f82e5d3929548f17ce2b4a39b6.webp)
pop函数
表示删除某个属性或者字段信息
![](https://filescdn.proginn.com/0c91b2517a929814027b5148f40df7b1/eff279a77ae79bdf5863c6814464034a.webp)
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。
![](https://filescdn.proginn.com/92ff3a12c05dad30c9f6499f53a351da/cd03af0dc74b6085c8d048e49165cd8e.webp)
reset_index函数
reset就是重置的含义,index就是行索引;连起来就是重置行索引
df9 = pd.DataFrame({"fruit":["苹果","香蕉","橙子","橙子","苹果","橙子"],
"amount":[100,200,130,150,88,40]})
df9
![](https://filescdn.proginn.com/f730ea1ae51bba3c6cb2295d55fe5e2b/b799f0625f9a9401e84e882e077b2fdd.webp)
当我们统计每种水果的总销售额,是否使用reset_index函数的不同效果:
![](https://filescdn.proginn.com/f4389d2a1c5480f94012939510e40d63/11ca9ddaf15ae6002b346ede7a2597d5.webp)
select_dtypes函数
根据字段类型来筛选数据,可以包含或者排除一个或者多个字段类型的数据。
下面是官网的案例,稍作修改:生成了3个不同数据类型的字段
![](https://filescdn.proginn.com/624de5804a1c482707e1bdedb0e7b940/5dab76534e878e0d0fa84e443f1068dd.webp)
1、包含字段类型
![](https://filescdn.proginn.com/39b502eb1bff021461dfc7773d7208b6/ccb76076fc8c52e40d94ea75f35a3c4e.webp)
2、排除字段类型
![](https://filescdn.proginn.com/8669a022bcdba349cd9e6cce8494014e/04c72eae44615ded008076a4c37cc404.webp)
take函数
也是选择数据的一个函数,具体语法为:
take(indices, axis=0, is_copy=None, **kwargs)
indices:选择位置:数组或者切片 axis:选择的轴,0-index,1-column,默认是0 is_copy:是否返回副本;从Pandas1.0开始
![](https://filescdn.proginn.com/202ab0a77c288133c35c85a1a4d5a813/cd24dfdc164f3c44de4bc09ca286ed62.webp)
下面是多个例子:
![](https://filescdn.proginn.com/add75b9103f65fd568be85e12a348956/b5a5b20df79d450ba624269e553ddd9c.webp)
![](https://filescdn.proginn.com/9089cef904b6a9d94d7d441fc2a546a9/ec2c3fce24d733e98f955d43c9c1b039.webp)
以第一个例子来解释,指定数据的记录为0和4。表示取出df10中的第1条和第5条数据(索引从0开始),而不是看我们自定义的索引号。
update函数
更新某个DataFrame数据框;模拟两个数据:
![](https://filescdn.proginn.com/6a945e74d50b37be7f6b0dd30c6b9346/5a5f8d06ff0e5c06e7c79926db3893d7.webp)
第一次更新的结果:
![](https://filescdn.proginn.com/5d53d7e5db6c5f925b78e3b94efd3bbc/7ebb66771cfdd27e304a99e1deb65d4a.webp)
如果用于更新的数据中存在空值,则保持原来的数据不变
![](https://filescdn.proginn.com/14cf75388cfbb41f1137fdfdb1f8baac/8736cb2a55dc09a4b140a1c519cec0dc.webp)
var函数
用于求一组数据的方差
![](https://filescdn.proginn.com/61d600e4234ba8d44bca4016d86d81da/3b061df50a956e2369744712ba10b1c0.webp)
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
对比Excel系列图书累积销量达15w册,让你轻松掌握数据分析技能,可以在全网搜索书名进行了解选购: