如何计算存储在pandas groupby中的字符串的长度?

cbwuti44  于 2023-03-21  发布在  其他
关注(0)|答案(1)|浏览(160)

我正在看wine review data from kaggle,并试图练习使用pandas。我遇到了一点问题。我想做的是将葡萄酒按国家和品种分组,然后确定葡萄酒评论家对来自特定国家的特定葡萄酒品种的描述的平均长度。
为此我尝试
average_desc = reviews.groupby(['country','variety']).description.apply(lambda x: len(x)).mean()
但所有这一切给我的是一些平均值。我不太知道什么问题是,或者我如何可以提供更多的信息,第一次张贴在这里,让我知道如何澄清。我想,一旦
reviews.groupby(['country','variety']).description
我基本上是在查看包含按品种排序的葡萄酒描述的列,只需要将列中字符串的长度转换为平均值。
average_desc = reviews.groupby(['country','variety']).description.apply(lambda x: len(x))
返回在以下国家中可以找到的不同葡萄酒品种的数量

country    variety                   
Argentina  Barbera                         1
           Bonarda                       105
           Bordeaux-style Red Blend       89
           Bordeaux-style White Blend      1
           Cabernet Blend                  8
                                        ... 
Uruguay    Tannat-Cabernet Franc           2
           Tannat-Merlot                   6
           Tannat-Syrah                    1
           Tempranillo-Tannat              1
           White Blend                     1
Name: description, Length: 1612, dtype: int64

那么,是否存在索引到 Dataframe 中 * 不够远 * 的问题?提前感谢您的帮助,如果我需要写更多来澄清这种情况,请让我知道。

elcex8rz

elcex8rz1#

IIUC,我想你想要这样的东西:

reviews['description'].str.len().groupby([df['country'], df['variety']]).mean()

输出:

country    variety                   
Argentina  Barbera                       236.000000
           Bonarda                       242.123810
           Bordeaux-style Red Blend      311.426966
           Bordeaux-style White Blend    274.000000
           Cabernet Blend                281.000000
                                            ...    
Uruguay    Tannat-Cabernet Franc         300.500000
           Tannat-Merlot                 258.333333
           Tannat-Syrah                  275.000000
           Tempranillo-Tannat            260.000000
           White Blend                   248.000000
Name: description, Length: 1612, dtype: float64

相关问题