首页 > 解决方案 > 创建新列时遇到错误

问题描述

原始数据框:

df.head()
>
     beer_beerid    review_profilename    review_overall
0     48215          stcules                   3.0
1     52159          oline73                   3.0
2     52159          alpinebryant              3.0
3     52159          rawthar                   4.0
4     52159          RangerClegg               3.5

需要在此数据框中创建一个包含 beer_beeid 出现次数的新列。如果 beerid 52159 出现 4 次 - 那么该 beerid 的新列值应为 4。

使用以下代码:

df['beer_review_count'] = df.groupby('beer_beerid').transform('count')

它给出了以下错误

ValueError: Wrong number of items passed 2, placement implies 1

标签: pythonpandas

解决方案


这是解决方案。

df['beer_review_count'] = df.groupby('beer_beerid')['beer_beerid'].transform('count')

使用transform()可以正常工作

beer_beerid   profilename  overall  beer_review_count
0  48215       stcules      3.0                  1
1  52159       oline73      3.0                  4
2  52159  alpinebryant      3.0                  4
3  52159       rawthar      4.0                  4
4  52159   RangerClegg      3.5                  4

推荐阅读