Создание нового столбца в датафрейме - PullRequest
0 голосов
/ 25 октября 2019

У меня есть фрейм данных со следующими столбцами:

date    count_e
03/08/2019  31
03/08/2019  31
04/08/2019  47
04/08/2019  47
04/08/2019  47
04/08/2019  47
04/08/2019  47
04/08/2019  47
05/08/2019  30
05/08/2019  30
05/08/2019  30
05/08/2019  30
05/08/2019  30
05/08/2019  30
05/08/2019  30
05/08/2019  30
05/08/2019  30
06/08/2019  44
06/08/2019  44
06/08/2019  44

Я хочу создать новый столбец "a_count", который будет сгенерирован при условии, что для каждой строки это будет count_e / (фактическое число дат, присутствующих в кадре данных) число каждой даты.

Например:

Ожидаемый результат:

date      count_e     a_count
    03/08/2019  31        31/2
    03/08/2019  31        31/2
    04/08/2019  47        47/6 (Since actual count of date in dataframe is 6)
    04/08/2019  47        47/6
    04/08/2019  47        47/6
    04/08/2019  47        47/6
    04/08/2019  47         .
    04/08/2019  47         .
    05/08/2019  30         30/9
    05/08/2019  30
    05/08/2019  30
    05/08/2019  30
    05/08/2019  30
    05/08/2019  30
    05/08/2019  30
    05/08/2019  30
    05/08/2019  30
    06/08/2019  44
    06/08/2019  44
    06/08/2019  44

Может ли кто-нибудь помочь в достижении того же самого.

Спасибо

1 Ответ

1 голос
/ 25 октября 2019

Использование groupby и transform:

df["a_count"] = df["count_e"].div(df.groupby("date")["count_e"].transform('count'))

print (df)

#
          date  count_e    a_count
0   03/08/2019       31  15.500000
1   03/08/2019       31  15.500000
2   04/08/2019       47   7.833333
3   04/08/2019       47   7.833333
4   04/08/2019       47   7.833333
5   04/08/2019       47   7.833333
6   04/08/2019       47   7.833333
7   04/08/2019       47   7.833333
8   05/08/2019       30   3.333333
9   05/08/2019       30   3.333333
10  05/08/2019       30   3.333333
11  05/08/2019       30   3.333333
12  05/08/2019       30   3.333333
13  05/08/2019       30   3.333333
14  05/08/2019       30   3.333333
15  05/08/2019       30   3.333333
16  05/08/2019       30   3.333333
17  06/08/2019       44  14.666667
18  06/08/2019       44  14.666667
19  06/08/2019       44  14.666667
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...