我在python
中有一个数据框,我正在对其中一列进行groupby
和agg
,如下所示。在此agg
中,我将计数
除以指定数字
。现在我想传递一个随机数来除计数值。
df.groupby('a').agg(count('a')/3)
我想要这样的东西
df.groupby('a').agg(count('a')/{}.format(random_number)
我们能做到吗?
最佳答案
我相信需要:
df['a'].value_counts() / 3
使用groupby
和agg
的解决方案:
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/