python - 如何在熊猫中使用条件执行分组和转换计数
问题描述
我有以下数据框:
# Import pandas library
import pandas as pd
import numpy as np
# data
data = [['tom', 10,2,'c',100,'x'], ['tom',16 ,3,'a',100,'x'], ['tom', 22,2,'a',100,'x'],
['matt', 10,1,'c',100,'x'], ['matt', 15,5,'b',100,'x'], ['matt', 14,1,'b',100,'x']]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['Name', 'Attempts','Score','Category','Rating','Other'])
df['AttemptsbyRating'] = df.groupby(by=['Rating'])['Attempts'].transform('count')
df
然后我尝试创建额外的列 - 一个显示按评级分组的尝试计数(如上所示),然后尝试做另一个我想计算大于 1 的分数。我试过:
df['scoregreaterthan1'] = df[df.groupby(by=['Rating'])['Score'].transform('count')>1]
我得到了一个ValueError: Wrong number of items passed 7, placement implies 1
基本上在上表中,我希望它每列显示 4 个(4 个分数大于 1)
任何帮助将非常感激!谢谢
解决方案
我们应该做
df['scoregreaterthan1'] = df['Score'].gt(1).groupby(df['Rating']).transform('sum')
推荐阅读
- bash - 用于 wget 以特定字符开头的 url 的 Bash 脚本
- c++ - constexpr if else 表达式中的“预期语句”
- delphi - 使用 BASS dll 和 Delphi 创建 flac 文件或 flac 流
- stata - 幂二均值:均值必须包含数字
- git - mac上的git-svn无法连接到远程svn仓库,而simple svn可以
- php - LOAD DATA INFILE 父子表和外键关系
- create-react-app - 如何通过 create-react-app 在远程开发盒上使用 npm start
- r - 将列表中的多个 data.tables 组合成两个 data.tables 的列表
- bit-framework - 如何在配置 json 文件中嵌套配置并使用位读取它?
- .net - list.Clear() 与 new List<>() - ASP.NET Core - Entity Framework Core - 延迟加载