Я перевожу формулу Excel в пандах.У меня есть два кадра данных df1
и df2
, и мне нужно будет посчитать значения в первом столбце данных df1
и заполнить кадр данных df2
, где значения, подсчитанные в df1
, равны значению в df2
,Как проверить и заполнить новый столбец в df2
подсчитанными значениями от df1
?
df1
:
id member seq
0 48299 Koif 1
1 48299 Iki 1
2 48299 Juju 2
3 48299 PNik 3
4 48865 Lok 1
5 48865 Mkoj 2
6 48865 Kino 1
7 64865 Boni 1
8 64865 Afriya 2
9 50774 Amah 2
10 23697 Pilato 1
11 23697 Clems 1
df2
:
group_id group_name count
0 48299 e_sys
1 50774 Y3N
2 64865 nana
3 48865 juzti
Могут быть члены из df1
, например, Clems
и Pilato
, чей счет не нужен, так как эта группа не входит в df2
.
Я могу сделать подсчет в порядке (см.код ниже), моя проблема заключается в сравнении подсчитанных id
в df1
с group_id
в df2
и заполнении подсчитанных значений.
Подсчет:
df1.groupby('id')['id'].count()
Мое текущее решениеis:
df2['count'] = df1[(df2['group_id'].isin(df1['id']))].count() Or
df2['count'] = df1[(df2['group_id'].isin(df1['id']))].transform('count')
Оба не дают желаемого результата.
Результаты df2
:
group_id group_name count
0 48299 e_sys 4
1 50774 Y3N 1
2 64865 nana 2
3 48865 juzti 3