Подсчитать все слова в разделенных запятыми строках на группу в пандах - PullRequest
0 голосов
/ 19 мая 2019

Я хотел бы сосчитать школы (разделенные запятыми) из таблицы данных, приведенной ниже.

Dataframe:

State    Counties    Schools_list
S1       C1          GradeA,GradeB,GradeC
S1       C1          GradeD
S2       C1          GradeA,GradeB
S2       C2          GradeC
S3       C2          GradeA,GradeB
S3       C3          GradeC,GradeD

Выход:

State          Schools_count
S1             4
S2             3
S3             4

Как посчитать список школ, разделенных запятыми, из последней колонки по штатам.

1 Ответ

1 голос
/ 19 мая 2019

Простым решением здесь будет подсчет запятых:

df['Schools_list'].str.count(',').add(1).groupby(df.State).sum()

State
S1    4
S2    3
S3    4
Name: Schools_list, dtype: int64

Обратите внимание, что после того, как вы посчитаете запятые, сгруппируйте по имени штата, чтобы получить счет по состоянию.

Как DataFrame,

(df['Schools_list'].str.count(',')
                   .add(1)
                   .groupby(df.State)
                   .sum()
                   .reset_index(name='Schools_count'))

  State  Schools_count
0    S1              4
1    S2              3
2    S3              4

Вы также можете разделить запятую и найти длину созданных списков, но это немного медленнее.

df['Schools_list'].str.split(',+').str.len().groupby(df.State).sum()

State
S1    4
S2    3
S3    4
Name: Schools_list, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...