如何将一系列的(例如)熊猫groupby.apply(f)的结果放入数据框的新列中?

汤姆

我有一个数据框,我想计算统计值(value_count,众数,均值等),然后将结果放在新列中。我当前的解决方案是O(n ** 2)左右,并且我敢肯定我可能会忽略一种更快,更明显的方法。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(10, size=(100, 10)), 
                   columns = list('abcdefghij'))

df['result'] = 0

groups = df.groupby([df.i, df.j])
for g in groups:
    icol_eq = df.i == g[0][0]
    jcol_eq = df.j == g[0][1]
    i_and_j = icol_eq & jcol_eq
    df['result'][i_and_j] = len(g[1])

上面的方法有效,但是对于大型数据帧来说非常慢。

我试过了

df['result'] = df.groupby([df.i, df.j]).apply(len)

但它似乎不起作用。

也没有

def f(g):
    g['result'] = len(g)
    return g

df.groupby([df.i, df.j]).apply(f)

我也不能合并df.groupby.apply(lambda x:len(x))的结果序列

埃德·楚姆

您要使用transform

In [98]:

df['result'] = df.groupby([df.i, df.j]).transform(len)
df
Out[98]:
    a  b  c  d  e  f  g  h  i  j  result
0   6  1  3  0  1  1  4  2  8  6       6
1   1  3  9  7  5  5  3  5  4  4       1
2   1  5  0  1  8  1  4  7  3  9       1
3   6  8  6  4  6  0  8  0  6  5       6
4   7  9  7  2  8  9  9  6  0  6       7
5   3  5  5  7  2  7  7  3  2  8       3
6   5  0  4  7  5  7  5  7  9  1       5
7   3  2  5  4  3  6  8  4  2  0       3
8   2  3  0  4  8  5  7  9  7  2       2
9   1  1  3  2  3  5  6  6  5  6       1
10  3  0  2  7  1  8  1  3  5  4       3
....

transform 返回其索引与原始df对齐的Series,然后可以将其添加为列

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将一系列较小的尺寸连接到熊猫数据框的底部

来自分类Dev

如何将一系列参数应用于 MATLAB 中的一系列函数?

来自分类Dev

如何将数据框变成一系列列表?

来自分类Dev

如何按熊猫中的一系列值分组?

来自分类Dev

如何将一个数组中的一系列值除以另一个数组中的一系列值

来自分类Dev

如何将一系列数值数据转换为特定的分类数据?

来自分类Dev

如何将字典对象解包到一系列数据帧

来自分类Dev

如何将一系列条件映射为字典中的键?

来自分类Dev

如何将列表中的标题添加到一系列直方图?

来自分类Dev

如何将具有递减值的多行添加到一系列中

来自分类Dev

如何将列表中的标题添加到一系列直方图?

来自分类Dev

如何将div中的内容转换为一系列变量?

来自分类Dev

如何将一系列值分配给 php 中的数组?

来自分类Dev

如何从熊猫中的一系列数据框中删除空数据框?

来自分类Dev

如何将一个快捷键映射到lighttable中的一系列标签(任务)?

来自分类Dev

如何将任何内容匹配到一个组中的一系列字符

来自分类Dev

如何将内容回显到cat生成的一系列新文件中

来自分类Dev

熊猫:使用SimpleImputer可以将数据帧转换为一系列数据吗?

来自分类Dev

groupby +将结果应用到同时出现在索引和列中的一系列内容中-如何防止呢?

来自分类Dev

将 Spark 数据帧 Groupby 转换为一系列数据帧

来自分类Dev

如何根据熊猫中一系列列的特定条件选择行

来自分类Dev

如何用熊猫中的一系列数字减去日期时间索引?

来自分类Dev

如何使用Python将一系列重复的数据行转换为多个记录的列?

来自分类Dev

如何将一系列文本文件导入数据框,而每个文件作为输入,而不用分隔符分隔?

来自分类Dev

如何使用Javascript或Jquery将一系列JSON数据附加到HTML?

来自分类Dev

将一系列功能应用于数据

来自分类Dev

如何将当前日期与包含具有一系列日期的列的表进行比较,并将关联值用作变量?

来自分类Dev

如何顺序处理一系列AJAX请求的结果?

来自分类Dev

如何根据一系列值“扩展” IQueryable 结果?

Related 相关文章

  1. 1

    如何将一系列较小的尺寸连接到熊猫数据框的底部

  2. 2

    如何将一系列参数应用于 MATLAB 中的一系列函数?

  3. 3

    如何将数据框变成一系列列表?

  4. 4

    如何按熊猫中的一系列值分组?

  5. 5

    如何将一个数组中的一系列值除以另一个数组中的一系列值

  6. 6

    如何将一系列数值数据转换为特定的分类数据?

  7. 7

    如何将字典对象解包到一系列数据帧

  8. 8

    如何将一系列条件映射为字典中的键?

  9. 9

    如何将列表中的标题添加到一系列直方图?

  10. 10

    如何将具有递减值的多行添加到一系列中

  11. 11

    如何将列表中的标题添加到一系列直方图?

  12. 12

    如何将div中的内容转换为一系列变量?

  13. 13

    如何将一系列值分配给 php 中的数组?

  14. 14

    如何从熊猫中的一系列数据框中删除空数据框?

  15. 15

    如何将一个快捷键映射到lighttable中的一系列标签(任务)?

  16. 16

    如何将任何内容匹配到一个组中的一系列字符

  17. 17

    如何将内容回显到cat生成的一系列新文件中

  18. 18

    熊猫:使用SimpleImputer可以将数据帧转换为一系列数据吗?

  19. 19

    groupby +将结果应用到同时出现在索引和列中的一系列内容中-如何防止呢?

  20. 20

    将 Spark 数据帧 Groupby 转换为一系列数据帧

  21. 21

    如何根据熊猫中一系列列的特定条件选择行

  22. 22

    如何用熊猫中的一系列数字减去日期时间索引?

  23. 23

    如何使用Python将一系列重复的数据行转换为多个记录的列?

  24. 24

    如何将一系列文本文件导入数据框,而每个文件作为输入,而不用分隔符分隔?

  25. 25

    如何使用Javascript或Jquery将一系列JSON数据附加到HTML?

  26. 26

    将一系列功能应用于数据

  27. 27

    如何将当前日期与包含具有一系列日期的列的表进行比较,并将关联值用作变量?

  28. 28

    如何顺序处理一系列AJAX请求的结果?

  29. 29

    如何根据一系列值“扩展” IQueryable 结果?

热门标签

归档