Python – 拆分字符串列,groupby和count字符

前端之家收集整理的这篇文章主要介绍了Python – 拆分字符串列,groupby和count字符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个包含2列的数据集,如下所示:

|group| |sequence|
A        BX
A        X
B        SFS
B        BCX
B        BSS*B1S
A        BBX

我想要一些方法来分组和找到每个角色的频率,得到这样的东西:

 |group| |char| |freq|
 A       B       3
 A       X       3
 B       S       5
 ...
最佳答案
您可以使用有效的基于重复的解决方案,然后使用groupby:

from itertools import chain

# Step 1 - flatten your dataframe
df = pd.DataFrame({
    'group' : df['group'].repeat(df.sequence.str.len()),'char' : list(chain.from_iterable(df.sequence.tolist()))
})
# Step 2 - filter out characters and groupby on `group`
df[df.char.str.isalpha()].groupby(['group','char']).size().reset_index(name='freq')
  group char  freq
0     A    B     3
1     A    X     3
2     B    B     3
3     B    C     1
4     B    F     1
5     B    S     5
6     B    X     1

猜你在找的Python相关文章