- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE1
PAGE1
Pandas高级功能概览
1窗口函数的介绍与应用场景
1.1窗口函数原理
窗口函数(WindowFunctions)在Pandas中是一种强大的工具,用于在数据的连续或指定范围内执行计算,而无需改变数据的原始结构。它允许我们对数据进行局部的、连续的或基于某些条件的聚合操作,如计算移动平均、累积和、排名等。窗口函数的关键在于它能够处理数据的“窗口”,即数据的子集,而这些子集可以基于行数、时间间隔或数据的特定值来定义。
1.2窗口函数应用场景
移动平均:在时间序列分析中,计算过去N个时间点的平均值,以平滑数据波动。
累积和:计算数据的累积总和,如累计销售额、累计用户数等。
排名:在数据集中对特定列的值进行排名,如销售额排名、用户活跃度排名等。
百分位数:计算数据在窗口中的百分位数,用于了解数据分布情况。
滚动统计:如滚动标准差、滚动最大值等,用于分析数据的波动性和趋势。
1.3窗口函数示例
假设我们有一个包含股票价格数据的DataFrame,我们想要计算过去5天的移动平均价格。
importpandasaspd
#创建示例数据
data={Date:pd.date_range(start=2023-01-01,periods=10),
Price:[100,102,105,103,104,106,107,108,109,110]}
df=pd.DataFrame(data)
#计算过去5天的移动平均价格
df[Moving_Average_5D]=df[Price].rolling(window=5).mean()
print(df)
1.4解释
在上述代码中,我们首先创建了一个包含日期和价格的DataFrame。然后,使用rolling函数定义了一个窗口大小为5的滚动窗口,并计算了这个窗口内的平均价格。结果被存储在新列Moving_Average_5D中。
2自定义聚合函数的实现与优化
2.1自定义聚合函数原理
Pandas允许用户定义自己的聚合函数,这为数据分析提供了极大的灵活性。自定义聚合函数可以是任何Python函数,只要它能够接受一个数组或Series作为输入,并返回一个单一的值作为输出。这使得我们可以根据具体需求,实现更复杂的数据处理逻辑,如计算中位数偏差、加权平均等。
2.2自定义聚合函数实现
假设我们有一个包含用户评分数据的DataFrame,我们想要计算每个用户的评分中位数偏差。
importpandasaspd
importnumpyasnp
#创建示例数据
data={UserID:[1,1,1,2,2,2,3,3,3],
Rating:[4,5,3,2,3,4,5,4,3]}
df=pd.DataFrame(data)
#自定义函数:计算中位数偏差
defmedian_deviation(x):
median=x.median()
returnnp.abs(x-median).mean()
#使用自定义函数计算每个用户的评分中位数偏差
df[Median_Deviation]=df.groupby(UserID)[Rating].transform(median_deviation)
print(df)
2.3解释
在示例中,我们定义了一个名为median_deviation的自定义函数,它首先计算输入数据的中位数,然后计算每个值与中位数的绝对偏差的平均值。使用groupby和transform函数,我们能够对每个用户组应用这个自定义函数,计算出每个用户的评分中位数偏差。
2.4自定义聚合函数优化
当处理大规模数据集时,自定义聚合函数的性能优化变得尤为重要。以下是一些优化策略:
向量化操作:尽可能使用NumPy等库的向量化操作,避免使用Python的循环,因为后者在大规模数据上效率较低。
使用apply与agg:apply和agg函数可以接受多个列作为输入,这在需要跨列计算时非常有用。
并行处理:利用Dask等库,将数据集分割成多个块,并行处理每个块,最后合并结果,以提高处理速度。
2.5优化示例
使用NumPy的向量化操作来优化上述示例中的自定义函数。
importpandasaspd
importnumpyasnp
#创建示例数据
data={UserID:[1,1,1,2,2,2,3,3,3],
Rating:[4,5,3,2,3,4,5,4,3]}
df=pd.DataFrame
您可能关注的文档
- 数据分析师-编程语言与工具-Pandas_Pandas基础介绍与安装.docx
- 数据分析师-编程语言与工具-Pandas_Pandas实战案例:数据分析与可视化.docx
- 数据分析师-编程语言与工具-Pandas_Pandas数据结构:Series与DataFrame.docx
- 数据分析师-编程语言与工具-Pandas_Pandas性能优化与内存管理.docx
- 数据分析师-编程语言与工具-Pandas_时间序列数据处理.docx
- 数据分析师-编程语言与工具-Pandas_数据操作:排序、过滤与分组.docx
- 数据分析师-编程语言与工具-Pandas_数据读取与写入:处理CSV和Excel文件.docx
- 数据分析师-编程语言与工具-Pandas_数据合并与重塑:concat与pivot_table.docx
- 数据分析师-编程语言与工具-Pandas_数据清洗:处理缺失值与重复值.docx
- 数据分析师-编程语言与工具-Pandas_数据选择与索引:loc与iloc方法.docx
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)