python - 将随机变量传递给 agg 函数 python

标签 python pandas

我在python中有一个数据框,我正在对其中一列进行groupbyagg,如下所示。在此agg中,我将计数除以指定数字。现在我想传递一个随机数来除计数值。

 df.groupby('a').agg(count('a')/3)

我想要这样的东西

 df.groupby('a').agg(count('a')/{}.format(random_number)

我们能做到吗?

最佳答案

我相信需要:

df['a'].value_counts() / 3

使用groupbyagg的解决方案:

df.groupby('a').agg({'a': 'count'}) / 3

df.groupby('a').agg({'a': lambda x: x.count() / 3})

df.groupby('a')['a'].agg(lambda x: x.count() / 3)

对于每组的随机数,除以 1 到 10 之间的数字,而不是除以 0 到 10 之间的数字,以避免 0 除以 numpy.random.randint(然后得到 inf) :

df = pd.DataFrame({
    'a': [1,1,1,2,2,3,3,3,3],
    'b': list(range(9))
})
print (df)
   a  b
0  1  0
1  1  1
2  1  2
3  2  3
4  2  4
5  3  5
6  3  6
7  3  7
8  3  8

df1 = df.groupby('a')['a'].agg(lambda x: x.count() / np.random.randint(1, 10))
print (df1)
a
1    0.500000
2    0.285714
3    0.500000
Name: a, dtype: float64

关于python - 将随机变量传递给 agg 函数 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50590354/

相关文章:

python - 使用 XlsxWriter 在 pandas 中导出到 'xlsx' 时应用样式

python - Pandas 删除方括号和单引号

python - 迭代数据框并根据条件替换值

python pandas dataframe 添加带有过滤条件的总列

python - 在 SQL 中查找罗马数字的范围

python - 如何在 Django 项目的本地开发中禁用白噪声?

javascript - 将 Python 字符串与 Javascript 值结合起来

python - 从图中展开路径

python - 分别为 Pandas 列设置样式

python - 在域过滤器中使用函数