创建新列时遇到错误

2024-04-16 15:02:41 发布

您现在位置:Python中文网/ 问答频道 /正文

原始数据帧:

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\u beerid的出现次数。如果beerid52159出现4次-则该beerid的新列值应为4。你知道吗

使用以下代码:

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

它给出了以下错误

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

Tags: 数据df原始数据countheadreviewbeeroverall
2条回答

假设编辑中的模式是正确的, 试试看

df['beer_beerid'].value_counts()

共享CSV文件的图片,这样我就可以确定,因为我现在不确定它是beerid还是\u beerid。你知道吗

LINK

df.groupby('beer_beerid')['beer_beerid'].count()

编辑:

可能修复了一个错误,与其他解决方案不同,这应该避免冗余:值的重复。你知道吗

LINK

根据我所做的输出应该是这样的。你知道吗


beer_beerid
48215       1 
52159       4

This有助于将列添加到现有数据帧。你知道吗

这是解决办法。你知道吗

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

相关问题 更多 >