为了账号安全,请及时绑定邮箱和手机立即绑定

如何分组两列和单词计数熊猫(或python)中的最后一列

如何分组两列和单词计数熊猫(或python)中的最后一列

动漫人物 2021-09-02 19:41:23
1)例如,我有 3 列,如下所示 date      categories     contents   2018-01   fish_tank1     Goldfish Gombessa Goosefish Gopher rockfish    2018-01   fish_tank2     Grass carp Goosefish Grayling mullet shark   2018-02   fish_tank2     Goosefish Gopher rockfish Grayling mullet shark   2018-01   fish_tank1     carp Goosefish Grayling Goldfish Gombessa    2018-02   fish_tank2     carp Goosefish Grayling Grass carp Goosefish   2018-03   fish_tank3     Grass carp Goosefish Grayling mullet shark   2018-03   fish_tank2     Goosefish Gopher rockfish Goosefish Grayling  2)我有点想做df.groupby(['date','categories']).agg(df.contents.str.split(expand=True).stack().value_counts()得到类似下面的结果。但最近几天我无法弄清楚这一点。    date   categories       contents   2018-01   fish_tank1  2    Goldfish    2                               Gombessa    2                               Goosefish   2                                Gopher      1                               rockfish    1                               ......              fish_tank2      Grass    1                              carp     1                              .....   2018-02   fish_tank2     Goosefish    3                            Grayling     2                            Gopher       1                            ........    ........................  3)谁能给我洞察力来获得我想做的结果?
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

用 -


from collections import Counter

df['contents2'] = df['contents'].str.split()

df.groupby(['date', 'categories'])['contents2'].apply(lambda x: Counter(x.sum()))

输出


date     categories           

2018-01  fish_tank1  Goldfish     2.0

                     Gombessa     2.0

                     Goosefish    2.0

                     Gopher       1.0

                     Grayling     1.0

                     carp         1.0

                     rockfish     1.0

         fish_tank2  Goosefish    1.0

                     Grass        1.0

                     Grayling     1.0

                     carp         1.0

                     mullet       1.0

                     shark        1.0

2018-02  fish_tank2  Goosefish    3.0

                     Gopher       1.0

                     Grass        1.0

                     Grayling     2.0

                     carp         2.0

                     mullet       1.0

                     rockfish     1.0

                     shark        1.0

2018-03  fish_tank2  Goosefish    2.0

                     Gopher       1.0

                     Grayling     1.0

                     rockfish     1.0

         fish_tank3  Goosefish    1.0

                     Grass        1.0

                     Grayling     1.0

                     carp         1.0

                     mullet       1.0

                     shark        1.0

Name: contents2, dtype: float64


查看完整回答
反对 回复 2021-09-02
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信