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')
欢迎使用堆栈溢出。请向我们展示您的代码(即使您并不为此感到自豪,也不要害羞)。我们不会为您编写代码