Расширение набора данных на основе нескольких ограничений - PullRequest
0 голосов
/ 23 октября 2019

РЕДАКТИРОВАТЬ:

У меня есть кадр данных со следующими полями,

I_Code Date_1   Date_2  Count real_Count
4   01/09/2019  02/08/2019  112 1
4   01/09/2019  03/08/2019  178 3
1   01/09/2019  04/08/2019  174 6
4   01/09/2019  04/08/2019  174 6
1   01/09/2019  05/08/2019  194 8
4   01/09/2019  05/08/2019  194 8
1   01/09/2019  06/08/2019  195 8
2   01/09/2019  06/08/2019  195 8
4   01/09/2019  07/08/2019  208 10
1   01/09/2019  08/08/2019  183 14
2   01/09/2019  08/08/2019  183 14
4   01/09/2019  08/08/2019  183 14
1   01/09/2019  09/08/2019  213 17
4   01/09/2019  09/08/2019  213 17
1   01/09/2019  10/08/2019  213 14

real_count представляет счетчик date_2 в столбце данных и столбец countздесь относится к счетчику частоты даты_2, которого я хочу достичь в расширении. Я хочу расширить кадр данных таким образом, чтобы дата_2 отображалась в общем количестве счетчиков. Есть несколько записей для date_2, которые ограничены date_1 и I_code.

1   01/09/2019  08/08/2019  183
2   01/09/2019  08/08/2019  183
4   01/09/2019  08/08/2019  183

Здесь date_2 одинаковы, но I_code разные.

Пример:

Допустим, что date_2 = 08/08/2019 имеет в общей сложности 3 записи. затем при расширении нам нужно получить 183 записи в кадре данных, причем каждая запись имеет одинаковые записи, т.е. 183/3.

Может кто-нибудь помочь.

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете использовать .max(axis=1) поверх результатов .nunique(), чтобы получить максимальное количество уникальных значений (по всем другим столбцам) для каждого значения Date_2 .

Затем задайтеПолучившийся ряд назовите именем и соедините его с исходным фреймом данных.

df.join(df.groupby('Date_2').nunique().max(axis=1).rename('Date_2_Count'), on='Date_2')

I_Code      Date_1      Date_2  Count  real_Count  Date_2_Count
     4  01/09/2019  02/08/2019    112           1             1
     4  01/09/2019  03/08/2019    178           3             1
     1  01/09/2019  04/08/2019    174           6             2
     4  01/09/2019  04/08/2019    174           6             2
     1  01/09/2019  05/08/2019    194           8             2
     4  01/09/2019  05/08/2019    194           8             2
     1  01/09/2019  06/08/2019    195           8             2
     2  01/09/2019  06/08/2019    195           8             2
     4  01/09/2019  07/08/2019    208          10             1
     1  01/09/2019  08/08/2019    183          14             3
     2  01/09/2019  08/08/2019    183          14             3
     4  01/09/2019  08/08/2019    183          14             3
     1  01/09/2019  09/08/2019    213          17             2
     4  01/09/2019  09/08/2019    213          17             2
     1  01/09/2019  10/08/2019    213          14             1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...