2

我正在尝试words_count按两者对列进行分组essay_Setdomain1_score并添加计数器words_count以添加计数器结果,如此处所述:

>>> c = Counter(a=3, b=1)
>>> d = Counter(a=1, b=2)
>>> c + d                       # add two counters together:  c[x] + d[x]
Counter({'a': 4, 'b': 3})

我使用此命令将它们分组: words_freq_by_set = words_freq_by_set.groupby(by=["essay_set", "domain1_score"])但不知道如何通过 Counter 添加函数将其应用于words_count简单的+. 这是我的数据框:

在此处输入图像描述

4

1 回答 1

1

GroupBy.sum适用于 Counter 对象。但是我应该提到这个过程是成对的,所以这可能不是很快。我们试试看

words_freq_by_set.groupby(by=["essay_set", "domain1_score"])['words_count'].sum()

df = pd.DataFrame({
    'a': [1, 1, 2], 
    'b': [Counter([1, 2]), Counter([1, 3]), Counter([2, 3])]
})
df

   a             b
0  1  {1: 1, 2: 1}
1  1  {1: 1, 3: 1}
2  2  {2: 1, 3: 1}


df.groupby(by=['a'])['b'].sum()

a
1    {1: 2, 2: 1, 3: 1}
2          {2: 1, 3: 1}
Name: b, dtype: object
于 2020-12-31T18:57:51.063 回答