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

Python 计算熊猫中每组以逗号分隔的字符串中的所有单词,python,pandas,dataframe,pandas-groupby,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

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

数据帧:

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

如何按州从最后一列中计算逗号分隔的学校列表。

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

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

State
S1    4
S2    3
S3    4
Name: Schools_list, dtype: int64
请注意,计算完逗号后,请在状态名称上分组以按状态获取计数

作为一个数据帧

(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

第二个代码段给出了正确的输出。但是,计数显示为浮动。我需要它是int.@NirajBhatt
(df['Schools\u list'].str.count(',').add(1).groupby(df.State.sum().astype(int).reset_index(name='Schools\u count'))
@NirajBhatt或
df['Schools\u list'].str.split(',+').str.len().groupby(df.State).sum().astype(int).reset_index(name='Schools_count')
欢迎使用堆栈溢出。请向我们展示您的代码(即使您并不为此感到自豪,也不要害羞)。我们不会为您编写代码