熊猫分组;if 条件:sum else: 给定列的最大值基于另一列

乔伊科

df我在group

df = pd.DataFrame(np.random.rand(4,4), columns=list('abcd'))
df['group'] = [0, 0, 1, 1]

然后我想折叠 df 以便在 B 的总和大于 1 时对 A 求和,如果 B 的总和小于或等于 1,我想要 A 的最大值。

然后我想要 B 的 min() 和对其余列的其他各种操作。

耶斯列

为了获得更好的性能,请使用where

np.random.seed(15)
N = 1000
df = pd.DataFrame(np.random.rand(N,10), columns=list('abcdefghij'))
df['group'] = np.random.randint(100, size=N)

df_grouped = df.groupby('group')
s1 = df_grouped.apply(lambda grp: grp['a'].sum() if grp['b'].sum() > 1 else grp['a'].max())
print (s1)

df_grouped = df.groupby('group')
s2 = df_grouped['a'].sum().where(df_grouped['b'].sum() > 1, df_grouped['a'].max())
print (s2)


In [69]: %%timeit
    ...: df_grouped = df.groupby('group')
    ...: s1 = df_grouped.apply(lambda grp: grp['a'].sum() if grp['b'].sum() > 1 else grp['a'].max())
    ...: 
24.8 ms ± 228 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [70]: %%timeit
    ...: df_grouped = df.groupby('group')
    ...: s2 = df_grouped['a'].sum().where(df_grouped['b'].sum() > 1, df_grouped['a'].max())
    ...: 
1.63 ms ± 58 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫将条件应用于基于另一列的列值

来自分类Dev

对熊猫数据框中的一列求和,其中一列满足条件,但另一列分组

来自分类Dev

熊猫:基于另一列的上一行值的条件总和

来自分类Dev

熊猫分组多个列根据条件取另一列的平均值

来自分类Dev

基于另一列中的值分组后的条件总和

来自分类Dev

基于另一列的熊猫条件转移

来自分类Dev

如何选择*并按一列分组,同时选择另一列的最大值?

来自分类Dev

熊猫分组-基于另一列的值占分组总数的百分比

来自分类Dev

根据给定的熊猫条件随机分组数据

来自分类Dev

通过包括按条件分组的列在熊猫中分组

来自分类Dev

熊猫分组依据和基于条件的计算

来自分类Dev

根据条件填充另一列(熊猫)的空值

来自分类Dev

通过另一列熊猫找到列组的最大值

来自分类Dev

熊猫,从一列中选择最大值,从另一列中选择最小值

来自分类Dev

用另一列的条件填充一列并移动熊猫中的值

来自分类Dev

IF ELSE条件熊猫

来自分类Dev

在一列上分组并在另一列上获得最大值

来自分类Dev

熊猫分组并保留另一列的值

来自分类Dev

如何按用户ID对表进行分组并为另一列获取最大值?

来自分类Dev

设置列上的熊猫组并从另一列获取相应的最大值

来自分类Dev

熊猫在分组依据中广播了给定逻辑条件的值

来自分类Dev

在熊猫中找到一列的最大值

来自分类Dev

将数据框分组到一列,并从一列中获取最大值,并从另一列中获取其对应的值

来自分类Dev

如何用一列的最大值与另一列的最小值之间的差异将一列中的df按Python分组?

来自分类Dev

根据从另一列的最大值返回的最小年份值按列进行分组

来自分类Dev

多个列中的公式到SUM值,基于另一列中的条件

来自分类Dev

在条件基于另一列的情况下从熊猫数据框中删除重复项

来自分类Dev

熊猫基于另一列的dict值添加列

来自分类Dev

根据列值的条件对选定的行进行分组,然后转换另一列

Related 相关文章

  1. 1

    熊猫将条件应用于基于另一列的列值

  2. 2

    对熊猫数据框中的一列求和,其中一列满足条件,但另一列分组

  3. 3

    熊猫:基于另一列的上一行值的条件总和

  4. 4

    熊猫分组多个列根据条件取另一列的平均值

  5. 5

    基于另一列中的值分组后的条件总和

  6. 6

    基于另一列的熊猫条件转移

  7. 7

    如何选择*并按一列分组,同时选择另一列的最大值?

  8. 8

    熊猫分组-基于另一列的值占分组总数的百分比

  9. 9

    根据给定的熊猫条件随机分组数据

  10. 10

    通过包括按条件分组的列在熊猫中分组

  11. 11

    熊猫分组依据和基于条件的计算

  12. 12

    根据条件填充另一列(熊猫)的空值

  13. 13

    通过另一列熊猫找到列组的最大值

  14. 14

    熊猫,从一列中选择最大值,从另一列中选择最小值

  15. 15

    用另一列的条件填充一列并移动熊猫中的值

  16. 16

    IF ELSE条件熊猫

  17. 17

    在一列上分组并在另一列上获得最大值

  18. 18

    熊猫分组并保留另一列的值

  19. 19

    如何按用户ID对表进行分组并为另一列获取最大值?

  20. 20

    设置列上的熊猫组并从另一列获取相应的最大值

  21. 21

    熊猫在分组依据中广播了给定逻辑条件的值

  22. 22

    在熊猫中找到一列的最大值

  23. 23

    将数据框分组到一列,并从一列中获取最大值,并从另一列中获取其对应的值

  24. 24

    如何用一列的最大值与另一列的最小值之间的差异将一列中的df按Python分组?

  25. 25

    根据从另一列的最大值返回的最小年份值按列进行分组

  26. 26

    多个列中的公式到SUM值,基于另一列中的条件

  27. 27

    在条件基于另一列的情况下从熊猫数据框中删除重复项

  28. 28

    熊猫基于另一列的dict值添加列

  29. 29

    根据列值的条件对选定的行进行分组,然后转换另一列

热门标签

归档