DataFrame(10):DataFrame运算——累计统计函数

简介: DataFrame(10):DataFrame运算——累计统计函数

1、相关函数说明

image.png


2、原始数据

df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)],
                   "score":[2,3,4,4,5,6,7,7,8]})
display(df)


结果如下:

image.png


3、cumsum()函数:求前n个元素的累积值(很重要的一个函数)

df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)],
                   "score":[2,3,4,4,5,6,7,7,8]})
display(df)
df["cumsum"] = df["score"].cumsum(axis=0)
display(df)


结果如下:

image.png


1)cumsum():分组求累计值

df = pd.DataFrame({"id":["001","001","002","003","001","002","002","003","003"],
                   "score":[2,3,4,4,5,6,7,7,8]})
display(df)
df["分组求累计值"] = df.groupby("id").cumsum()
df = df.sort_values(by=["id"])
display(df)

结果如下:

image.png


4、cummax()函数:求前n个元素中的最大值

df = pd.DataFrame({"score":[1,2,1,5,2,6,3,7,1]})
display(df)
df["前n个值中最大值"] = df["score"].cummax(axis=0)
display(df)


结果如下:

image.png


1)cummax()函数:分组求前n个元素中的最大值

df = pd.DataFrame({"id":["001","001","002","003","001","002","002","003","003"],
                   "date":["2020-01-01","2020-01-09","2020-01-05","2020-01-03",
                           "2020-01-08","2020-01-07","2020-01-02","2020-01-04","2020-01-06"],
                   "score":[1,2,1,5,2,6,3,7,1]})
display(df)
df = df.sort_values(by=["id","date"],ascending=[True,True])
df["前n个值中最大值"] = df.groupby("id")["score"].cummax()
display(df)


结果如下:

image.png

注意:cummin()函数的用法和cummax()函数的用法一致,可以自行下去尝试。

 


5、cumprod()函数:求前n个元素的累乘积

df = pd.DataFrame({"score":[1,2,1,5,2,6,3,7,1]})
display(df)
df["前n个值的累乘积"] = df["score"].cummax(axis=0)
display(df)


结果如下:

image.png

注意:对于分组求前n个元素的累乘积,和上面用法一致。


相关文章
|
Python
DataFrame合并和连接案例解析
【4月更文挑战第9天】该文介绍了Pandas中DataFrame的合并与连接。通过创建两个DataFrame `df1` 和 `df2`,分别展示其内容,然后利用`merge()`方法按姓名列合并,生成包含共同姓名的完整信息的新DataFrame。此外,还使用`concat()`方法将两个DataFrame沿垂直方向(axis=0)连接,形成一个包含所有原始数据的新DataFrame。
273 2
DataFrame(12):数据转换——apply(),applymap()函数的使用(一)
DataFrame(12):数据转换——apply(),applymap()函数的使用(一)
DataFrame(12):数据转换——apply(),applymap()函数的使用(一)
|
数据可视化 数据挖掘 Python
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
【5月更文挑战第20天】本文介绍了使用Python的pandas、matplotlib和seaborn库进行数据可视化的步骤,包括创建示例数据集、绘制折线图、柱状图、散点图、热力图、箱线图、小提琴图和饼图。这些图表有助于直观理解数据分布、关系和趋势,适用于数据分析中的探索性研究。
397 1
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
|
开发者 Python
Python 的主流版本:Python 3.x
Python 的主流版本:Python 3.x
630 2
|
机器学习/深度学习 算法 TensorFlow
TensorFlow Probability 超厉害!带你探索贝叶斯方法与概率编程,开启数据科学新征程!
【8月更文挑战第31天】TensorFlow Probability是基于TensorFlow的一个强大库,专攻概率建模与推断,融合深度学习力量与概率方法灵活性,便于构建复杂概率模型并高效推断。它提供了概率分布、贝叶斯推断等工具,支持不确定性量化与决策,尤其适合数据有限情况。通过示例代码展示了如何构建贝叶斯线性回归模型,体现了其在处理不确定性方面的优势。
312 1
|
SQL 存储 JSON
Python写入MySQL数据库to_sql()一文详解+代码展示
Python写入MySQL数据库to_sql()一文详解+代码展示
4670 0
Python写入MySQL数据库to_sql()一文详解+代码展示
|
jenkins 应用服务中间件 持续交付
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
717 8
|
编译器 程序员 语音技术
C++的超20种函数类型分享
C++超20种函数类型:编程语言规定规则,编译器实现预定规则
|
数据安全/隐私保护
PyQt5-Qt Designer控件之间的伙伴关系和Tab顺序如何设置?
PyQt5-Qt Designer控件之间的伙伴关系和Tab顺序如何设置?
304 0
PyQt5-Qt Designer控件之间的伙伴关系和Tab顺序如何设置?
|
JSON JavaScript API
用Python编写小工具下载OSM路网数据
用Python编写小工具下载OSM路网数据
301 6