大熊猫:根据多个条件计算新列中的新值,适用于多个列而不循环

Ratchainant Thammasudjarit

我的数据在以下数据框中

df = pd.DataFrame({'AccID':['001','001','001','002','002','003'],
                   'AccTypes':['A','B','C','A','B','C'],
                   'Status':['Closed','Active','Active','Active','Closed','Active'],
                   'Years':[5,15,10,20,25,30]})

AccID     AccTypes     Status     Years
001       A            Closed     5
001       B            Active     15
001       C            Active     10
002       A            Active     20
002       B            Closed     25
003       C            Active     30

我想创建另一个名为“ ActiveYears”的列,该列的每个值都是给定活动AccID最大活动年份而不管AccTypes如何预期的输出如下:

AccID     AccTypes     Status     Years     ActiveYears     Explanations
001       A            Closed     5         5               # Status = Closed, we set ActiveYears = Years
001       B            Active     15        15              # Status = Active, we select the maximum year of AccID = 001 with active status
001       C            Active     10        15              # Status = Active, we select the maximum year of AccID = 001 with active status
002       A            Active     20        20              # Status = Active, we select the maximum year of AccID = 002 with active status
002       B            Closed     25        20              # Status = Closed, we set ActiveYears = Years
003       C            Active     30        30              # Status = Active, we select the maximum year of AccID = 003 with active status

我可以通过循环来做到这一点,但这还不够优雅。我可以知道比循环更好的方法吗?谢谢你。

朱利安·马雷克(Julien Marrec)

您可以使用以下内容:

首先处理身份Closed

df.loc[df.Status == 'Closed','ActiveYears'] = df.loc[df.Status == 'Closed','Years']

使用groupby转换来处理主动状态

df.loc[df.Status == 'Active', 'ActiveYears'] = df[df.Status == 'Active'].groupby('AccID')['Years'].transform(max)

print(df)

  AccID AccTypes  Status  Years  ActiveYears
0   001        A  Closed      5          5.0
1   001        B  Active     15         15.0
2   001        C  Active     10         15.0
3   002        A  Active     20         20.0
4   002        B  Closed     25         25.0
5   003        C  Active     30         30.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

大熊猫:将CSV数据从单个列重新格式化为多个新列

来自分类Dev

大熊猫:如何旋转多个列并计算其总和?

来自分类Dev

大熊猫:如何旋转多个列并计算其总和?

来自分类Dev

根据 R 中的多个条件分配新的列值

来自分类Dev

大熊猫:使用多个列值过滤行

来自分类Dev

大熊猫:使用其他两列中的任何一列添加新值

来自分类Dev

大熊猫:从存储为列值的列表中创建新列

来自分类Dev

根据多个列上的多个特定条件在熊猫中创建新列-Pandas

来自分类Dev

大熊猫:根据一列中的相似值,使用多个数据框中的值填充数据框中的空列

来自分类Dev

大熊猫-如果存在部分字符串匹配,则将值放在新列中

来自分类Dev

大熊猫-如果存在部分字符串匹配,则将值放在新列中

来自分类Dev

大熊猫中列的条件求和

来自分类Dev

大熊猫:将100多个变量融合到100多个新数据框中

来自分类Dev

如何使用大熊猫中的groupby根据另一列中的条件计算百分比总数

来自分类Dev

大熊猫:基于列值查找df中事件的首次发生并将其标记为新列值

来自分类Dev

根据groupby或大熊猫中的循环条件划分列

来自分类Dev

大熊猫应用于数据框列以返回带有后缀的多个列

来自分类Dev

根据日期时间和大熊猫今天的日期创建一个新列

来自分类Dev

根据多个列中的条件计算不同的值

来自分类Dev

根据条件在熊猫中创建新列

来自分类Dev

大熊猫从多个列中找到最近的变量索引

来自分类Dev

大熊猫:从现有的列值创建一个新的数据框

来自分类Dev

熊猫-如何根据新的列数据查找行值以及如何使用多个条件自合并

来自分类Dev

根据大熊猫中多列的条件删除随机N行

来自分类Dev

大熊猫,根据列中的层次结构值附加数据

来自分类Dev

大熊猫:从基于多个列的数据框中删除观察结果

来自分类Dev

从具有多个日期/价格列的数据框中以大熊猫创建面板

来自分类Dev

大熊猫:从基于多个列的数据框中删除观察结果

来自分类Dev

高性能适用于大熊猫

Related 相关文章

  1. 1

    大熊猫:将CSV数据从单个列重新格式化为多个新列

  2. 2

    大熊猫:如何旋转多个列并计算其总和?

  3. 3

    大熊猫:如何旋转多个列并计算其总和?

  4. 4

    根据 R 中的多个条件分配新的列值

  5. 5

    大熊猫:使用多个列值过滤行

  6. 6

    大熊猫:使用其他两列中的任何一列添加新值

  7. 7

    大熊猫:从存储为列值的列表中创建新列

  8. 8

    根据多个列上的多个特定条件在熊猫中创建新列-Pandas

  9. 9

    大熊猫:根据一列中的相似值,使用多个数据框中的值填充数据框中的空列

  10. 10

    大熊猫-如果存在部分字符串匹配,则将值放在新列中

  11. 11

    大熊猫-如果存在部分字符串匹配,则将值放在新列中

  12. 12

    大熊猫中列的条件求和

  13. 13

    大熊猫:将100多个变量融合到100多个新数据框中

  14. 14

    如何使用大熊猫中的groupby根据另一列中的条件计算百分比总数

  15. 15

    大熊猫:基于列值查找df中事件的首次发生并将其标记为新列值

  16. 16

    根据groupby或大熊猫中的循环条件划分列

  17. 17

    大熊猫应用于数据框列以返回带有后缀的多个列

  18. 18

    根据日期时间和大熊猫今天的日期创建一个新列

  19. 19

    根据多个列中的条件计算不同的值

  20. 20

    根据条件在熊猫中创建新列

  21. 21

    大熊猫从多个列中找到最近的变量索引

  22. 22

    大熊猫:从现有的列值创建一个新的数据框

  23. 23

    熊猫-如何根据新的列数据查找行值以及如何使用多个条件自合并

  24. 24

    根据大熊猫中多列的条件删除随机N行

  25. 25

    大熊猫,根据列中的层次结构值附加数据

  26. 26

    大熊猫:从基于多个列的数据框中删除观察结果

  27. 27

    从具有多个日期/价格列的数据框中以大熊猫创建面板

  28. 28

    大熊猫:从基于多个列的数据框中删除观察结果

  29. 29

    高性能适用于大熊猫

热门标签

归档