python pandas遍历每行并累加进行条件过滤方式

要实现“python pandas遍历每行并累加进行条件过滤方式”的功能,可以使用pandas库中的apply和cumsum方法。

下面是实现过程的详细步骤:

1.确定数据框格式

首先需要确定要操作的数据框格式。例如,使用以下代码可以创建一个包含姓名、部门和工资的数据框:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'department': ['accounting', 'engineering', 'engineering', 'HR'],
        'salary': [50000, 60000, 55000, 45000]}

df = pd.DataFrame(data)

输出的数据框样式为:

       name  department  salary
0     Alice  accounting   50000
1       Bob  engineering  60000
2   Charlie  engineering  55000
3     David  HR          45000

2.使用apply方法对每行数据进行操作

接下来,在遍历每一行时,可以使用apply方法对每一行进行操作。比如,可以累加每个部门的工资总和,并构造一个新的数据框。

def calculate_department_salary(row):
    department = row['department']

    row['cumulative_salary'] = df[df['department'] == department]['salary'].sum()

    return row

df_with_cumulative_salary = df.apply(calculate_department_salary, axis=1)

以上代码中,define一个calculate_department_salary函数,在函数体内首先取出当前行对应的部门名。然后使用df[df['department'] == department]['salary'].sum()语句求出该部门的工资总和,并将结果保存到新的列cumulative_salary中。apply方法通过axis=1指定对每一行进行遍历和操作,在操作完成后,将所有结果合并成一个新的数据框df_with_cumulative_salary,并输出结果:

       name  department  salary  cumulative_salary
0     Alice  accounting   50000                NaN
1       Bob  engineering  60000           115000.0
2   Charlie  engineering  55000           115000.0
3     David  HR          45000            45000.0

其中NaN值来自于第一行,因为accounting部门在整个数据框中只出现一次,没有其他行可以累加。

3.通过cumsum方法对数据框进行操作

除了使用apply方法,还可以直接使用cumsum方法对工资进行累加。首先需要将数据框按照部门进行分组:

grouped_by_department = df.groupby('department')

之后,计算每个部门的工资总和:

cumulative_salary_by_department = grouped_by_department['salary'].cumsum()

此时得到的cumulative_salary_by_department数据框如下:

0     50000
1     60000
2    115000
3     45000

最后将累加结果添加到原始数据框中:

df['cumulative_salary'] = cumulative_salary_by_department

输出结果为:

       name  department  salary  cumulative_salary
0     Alice  accounting   50000              50000
1       Bob  engineering  60000              60000
2   Charlie  engineering  55000             115000
3     David  HR          45000              45000

可以注意到,cumsum方法相对于apply方法更加简单,并且不需要构造新的函数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python pandas遍历每行并累加进行条件过滤方式 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • pip报错“ModuleNotFoundError: No module named ‘pip._vendor.pkg_resources’”怎么处理?

    原因 “ModuleNotFoundError: No module named ‘pip._vendor.pkg_resources'” 错误通常是以下原因引起的: pip 安装损坏:如果您的 pip 安装损坏或不完整,则可能会出现此错误。在这种情况下,您需要重新安装 pip。 系统环境变量问题:如果您的系统环境变量设置不正确,则可能会出现此错误。在这种情…

    python 2023年5月4日
    00
  • python 批量下载bilibili视频的gui程序

    下面是“Python 批量下载 Bilibili 视频的 GUI 程序”的完整攻略: 1. 背景 Bilibili 是一家中国的弹幕视频网站,拥有着庞大的用户群体和海量的视频资源。有时我们需要批量下载 Bilibili 视频,这时我们可以使用 Python 编写一个 GUI 程序,并结合第三方库实现自动化下载。 2. 准备工作 在编写 Python GUI …

    python 2023年6月3日
    00
  • Django后端接收嵌套Json数据及解析详解

    在Django后端,接收嵌套JSON数据并解析是一个常见的需求。以下是Django后端接收嵌套JSON数据及解析的详细攻略: 接收嵌套JSON数据 要接收嵌套JSON数据,可以使用request.body属性获取请求体,并使用json模块的loads()函数将请求体解析为Python对象。以下是接收嵌套JSON数据的示例: import json def m…

    python 2023年5月14日
    00
  • python3.7.2 tkinter entry框限定输入数字的操作

    在 Python 中,使用 Tkinter 库来创建 GUI 应用程序。其中,Entry 框是常用的一个控件,用于接收用户输入的数据。有时候,我们需要对 Entry 框的输入内容进行限制,比如只允许输入数字。下面就是一个完整的攻略,详细讲解如何实现 Entry 框的数字输入限制操作。 问题说明 在我们的 GUI 应用程序中,有一个 Entry 框用于接收用户…

    python 2023年6月13日
    00
  • 深入了解Python中pop和remove的使用方法

    当然,我很乐意为您提供“深入了解Python中pop和remove的使用方法”的完整攻略。以下是详细的步骤和示例。 Python中pop和remove的使用方法 在Python中,pop和remove两个常用的列表操作方法。它们都可以用于删除列表中的元素,但是它们的使用和效果略有不同。下我们将详细介绍它们的使用方法和区别。 pop方法 pop方法用于删除列表…

    python 2023年5月13日
    00
  • python 操作 mongodb 数据库详情

    下面我将为你详细讲解Python操作MongoDB数据库的完整攻略,包括以下内容: 安装MongoDB和Python的包 连接MongoDB服务器 创建和选择数据库 创建集合 插入数据 查询数据 更新数据 删除数据 示例说明 1. 安装MongoDB和Python的包 首先,你需要安装MongoDB和Python的包。 可以在官方网站下载MongoDB,选择…

    python 2023年5月14日
    00
  • Python中应该使用%还是format来格式化字符串

    Python中有两种方法用于格式化字符串,一种叫做%操作符格式化,另一种是str.format()方法格式化。但是,它们各自有不同的优点和适用场合。 使用%操作符格式化字符串 %操作符非常直观,类似于C语言中的printf()函数。在需要格式化的字符串中插入特殊字符作为占位符,然后使用%操作符指定每个占位符的值。 age = 26 name = ‘Lucy’…

    python 2023年6月5日
    00
  • 如何在网站上找到mp3文件的隐藏链接| Python

    【问题标题】:How to find the hidden link of mp3 files on the website | Python如何在网站上找到mp3文件的隐藏链接| Python 【发布时间】:2023-04-03 12:55:01 【问题描述】: 如何在radiojavan.com网站上通过Python找到mp3文件的隐藏链接 For ex…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部