python - 将列转换为具有列值计数的列标题
问题描述
图像 A 是我的数据框,有两列作为多个值,我想将此 val 列转换为我的列标题,如图 B 所示,并为每个用户添加值计数。我尝试使用 pandas groupby 和 count 但无法获得预期结果。
lst = ['UserA', 'UserB', 'UserC', 'UserD','UserB', 'UserC']
lst2 = ['X', 'Y', 'Z', 'Y','X','Z']
dm = pd.DataFrame(list(zip(lst, lst2)), columns =['Name', 'val'])
dm['count']= 1
dm.groupby(['Name','val']).count()
解决方案
添加unstack
:
dm.groupby(['Name','val']).count()['count'].unstack('val', fill_value='')
输出:
val X Y Z
Name
UserA 1
UserB 1 1
UserC 2
UserD 1
推荐阅读
- php - 无法从数据库中获取图像
- css - 在 CSS 中的不同字符上设置文本换行的优先级
- regex - 将包含 Unicode 换行符的行与 Notepad++ 正则表达式中的点模式匹配
- reactjs - 为了响应 API,React.js,向数组中的对象添加属性的更好方法是什么?
- python - 如何将此字典列表转换为 csv 文件
- eclipse - 每次我需要在 Mac 上清理和构建我的需求软件项目时
- c++ - 声明 `using namespace C;` 对于证明 [namespace.udir]/3 中的示例中显示的结果是必不可少的
- c# - .NET 应用程序在上传大文件时崩溃
- sql - 主查询未读取子查询结果集
- java - 需要了解创建对象和更新引用的 java 8 行为