
作者 | 刘顺祥
来源 | 数据分析1480
这一期将分享我认为比较常规的100个实用函数,这些函数大致可以分为六类,分别是统计汇总函数、数据清洗函数、数据筛选、绘图与元素级运算函数、时间序列函数和其他函数。
统计汇总函数
数据分析过程中,必然要做一些数据的统计汇总工作,那么对于这一块的数据运算有哪些可用的函数可以帮助到我们呢?具体看如下几张表。
import pandas as pd import numpy as np x = pd.Series(np.random.normal(2,3,1000)) y = 3*x + 10 + pd.Series(np.random.normal(1,2,1000)) # 计算x与y的相关系数 print(x.corr(y)) # 计算y的偏度 print(y.skew()) # 计算y的统计描述值 print(x.describe()) z = pd.Series(['A','B','C']).sample(n = 1000, replace = True) # 重新修改z的行索引 z.index = range(1000) # 按照z分组,统计y的组内平均值 y.groupby(by = z).aggregate(np.mean)
# 统计z中个元素的频次 print(z.value_counts()) a = pd.Series([1,5,10,15,25,30]) # 计算a中各元素的累计百分比 print(a.cumsum() / a.cumsum()[a.size - 1])
数据清洗函数
同样,数据清洗工作也是必不可少的工作,在如下表格中罗列了常有的数据清洗的函数。
x = pd.Series([10,13,np.nan,17,28,19,33,np.nan,27]) #检验序列中是否存在缺失值 print(x.hasnans) # 将缺失值填充为平均值 print(x.fillna(value = x.mean())) # 前向填充缺失值 print(x.ffill())
income = pd.Series(['12500元','8000元','8500元','15000元','9000元']) # 将收入转换为整型 print(income.str[:-1].astype(int)) gender = pd.Series(['男','女','女','女','男','女']) # 性别因子化处理 print(gender.factorize()) house = pd.Series(['大宁金茂府 | 3室2厅 | 158.32平米 | 南 | 精装', '昌里花园 | 2室2厅 | 104.73平米 | 南 | 精装', '纺大小区 | 3室1厅 | 68.38平米 | 南 | 简装']) # 取出二手房的面积,并转换为浮点型 house.str.split('|').str[2].str.strip().str[:-2].astype(float)
数据筛选
数据分析中如需对变量中的数值做子集筛选时,可以巧妙的使用下表中的几个函数,其中部分函数既可以使用在序列身上,也基本可以使用在数据框对象中。
np.random.seed(1234) x = pd.Series(np.random.randint(10,20,10)) # 筛选出16以上的元素 print(x.loc[x > 16]) print(x.compress(x > 16)) # 筛选出13~16之间的元素 print(x[x.between(13,16)]) # 取出最大的三个元素 print(x.nlargest(3)) y = pd.Series(['ID:1 name:张三 age:24 income:13500', 'ID:2 name:李四 age:27 income:25000', 'ID:3 name:王二 age:21 income:8000']) # 取出年龄,并转换为整数 print(y.str.findall('age:(d+)').str[0].astype(int))
绘图与元素级函数
np.random.seed(123) import matplotlib.pyplot as plt x = pd.Series(np.random.normal(10,3,1000)) # 绘制x直方图 x.hist() # 显示图形 plt.show() # 绘制x的箱线图 x.plot(kind='box') plt.show() installs = pd.Series(['1280万','6.7亿','2488万','1892万','9877','9877万','1.2亿']) # 将安装量统一更改为“万”的单位 def transform(x): if x.find('亿') != -1: res = float(x[:-1])*10000 elif x.find('万') != -1: res = float(x[:-1]) else: res = float(x)/10000 return res installs.apply(transform)
时间序列函数
其他函数
import numpy as np import pandas as pd np.random.seed(112) x = pd.Series(np.random.randint(8,18,6)) print(x) # 对x中的元素做一阶差分 print(x.diff()) # 对x中的元素做降序处理 print(x.sort_values(ascending = False)) y = pd.Series(np.random.randint(8,16,100)) # 将y中的元素做排重处理,并转换为列表对象 y.unique().tolist()
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
2025 年,数据如同数字时代的 DNA,编码着人类社会的未来图景,驱动着商业时代的运转。从全球互联网用户每天产生的2.5亿TB数据, ...
2025-06-052025 年,数据如同数字时代的 DNA,编码着人类社会的未来图景,驱动着商业时代的运转。从全球互联网用户每天产生的2.5亿TB数据, ...
2025-05-27CDA数据分析师证书考试体系(更新于2025年05月22日)
2025-05-26解码数据基因:从数字敏感度到逻辑思维 每当看到超市货架上商品的排列变化,你是否会联想到背后的销售数据波动?三年前在零售行 ...
2025-05-23在本文中,我们将探讨 AI 为何能够加速数据分析、如何在每个步骤中实现数据分析自动化以及使用哪些工具。 数据分析中的AI是什么 ...
2025-05-20当数据遇见人生:我的第一个分析项目 记得三年前接手第一个数据分析项目时,我面对Excel里密密麻麻的销售数据手足无措。那些跳动 ...
2025-05-20在数字化运营的时代,企业每天都在产生海量数据:用户点击行为、商品销售记录、广告投放反馈…… 这些数据就像散落的拼图,而相 ...
2025-05-19在当今数字化营销时代,小红书作为国内领先的社交电商平台,其销售数据蕴含着巨大的商业价值。通过对小红书销售数据的深入分析, ...
2025-05-16Excel作为最常用的数据分析工具,有没有什么工具可以帮助我们快速地使用excel表格,只要轻松几步甚至输入几项指令就能搞定呢? ...
2025-05-15数据,如同无形的燃料,驱动着现代社会的运转。从全球互联网用户每天产生的2.5亿TB数据,到制造业的传感器、金融交易 ...
2025-05-15大数据是什么_数据分析师培训 其实,现在的大数据指的并不仅仅是海量数据,更准确而言是对大数据分析的方法。传统的数 ...
2025-05-14CDA持证人简介: 万木,CDA L1持证人,某电商中厂BI工程师 ,5年数据经验1年BI内训师,高级数据分析师,拥有丰富的行业经验。 ...
2025-05-13CDA持证人简介: 王明月 ,CDA 数据分析师二级持证人,2年数据产品工作经验,管理学博士在读。 学习入口:https://edu.cda.cn/g ...
2025-05-12CDA持证人简介: 杨贞玺 ,CDA一级持证人,郑州大学情报学硕士研究生,某上市公司数据分析师。 学习入口:https://edu.cda.cn/g ...
2025-05-09CDA持证人简介 程靖 CDA会员大咖,畅销书《小白学产品》作者,13年顶级互联网公司产品经理相关经验,曾在百度、美团、阿里等 ...
2025-05-07相信很多做数据分析的小伙伴,都接到过一些高阶的数据分析需求,实现的过程需要用到一些数据获取,数据清洗转换,建模方法等,这 ...
2025-05-06以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/g ...
2025-04-30CDA持证人简介: 邱立峰 CDA 数据分析师二级持证人,数字化转型专家,数据治理专家,高级数据分析师,拥有丰富的行业经验。 ...
2025-04-29CDA持证人简介: 程靖 CDA会员大咖,畅销书《小白学产品》作者,13年顶级互联网公司产品经理相关经验,曾在百度,美团,阿里等 ...
2025-04-28CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-27