我想从下面给出的数据框中计算学校(用逗号分隔)。
数据框:
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
如何按州对逗号分隔的学校列表和最后一列进行计数。
答案 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