原始数据框:
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_beerid出现次数。如果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
答案 0 :(得分:0)
这是解决方案。
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
答案 1 :(得分:-1)
假设编辑中的模式是正确的, 尝试
df ['beer_beerid']。value_counts()
共享CSV文件的图片,只是为了让我可以确定,因为我现在不确定是beerid还是_beerid。
it('should set customer name on calling function "saveCustomerName()"', () => {
spyOn(component.customerService,'getCustomerName').and.returnValue('testName');
spyOn(component.customerService,'saveCustomerName').and.returnValue(of('saved'));
component.showSpinner = true;
component.saveCustomerName();
expect(component.customerService.getCustomerName).toHaveBeenCalled();
expect(component.customerService.saveCustomerName).toHaveBeenCalledWith('testName);
expect(component.showSpinner).toBeFalsy();
});
编辑:
可能解决NaN错误,并且与其他解决方案不同,这应该避免重复:值的重复。
根据我所做的输出应该是这样。
df.groupby('beer_beerid')['beer_beerid'].count()
This有助于将列添加到现有数据框中。