передать случайную переменную в функцию Python - PullRequest
0 голосов
/ 29 мая 2018

У меня есть кадр данных в python Я делаю groupby и agg в одном из столбцов, как показано ниже.В этом agg я делю count на specified number.Теперь я хочу передать случайное число, чтобы разделить значение счетчика.

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

Я хочу Нечто подобное

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

Можем ли мы это сделать?

1 Ответ

0 голосов
/ 29 мая 2018

Я считаю, что необходимо:

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 (затем получите inf) на numpy.random.randint:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...