计算大熊猫中每组以逗号分隔的字符串中的所有单词

时间:2019-05-19 20:07:44

标签: python pandas dataframe pandas-groupby

我想从下面给出的数据框中计算学校(用逗号分隔)。

数据框:

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 个答案:

答案 0 :(得分:1)

一个简单的解决方案是计算逗号:

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