python-3.x - get_dummies 并一起计数

标签 python-3.x pandas dataframe pivot

我有一个数据框,其中有不同的“案例”作为行,其中有一个 id 和一个类别:

df = DataFrame({ 'id':[1122,3344,5566,5566,3344,5566,1122,3344], 
            'category':['health','transport','energy','energy','transport','transport','transport','energy']})

    category    id
0   health      1122
1   transport   3344
2   energy      5566
3   energy      5566
4   transport   3344
5   transport   5566
6   transport   1122
7   energy      3344

我正在尝试找到一种既能获取类别的虚拟变量又能对它们进行计数的好方法,因此在上面的示例中我会得到:

     health  transport  energy
1122    1        1          0
3344    0        2          1
5566    0        1          2

有什么想法吗?

最佳答案

你可以使用pivot_table()方法:

In [71]: df.pivot_table(index='id', columns='category', aggfunc='size', fill_value=0)
Out[71]:
category  energy  health  transport
id
1122           0       1          1
3344           1       0          2
5566           2       0          1

或:

In [76]: df.pivot_table(index='id', columns='category', aggfunc='size', fill_value=0).rename_axis(None, 1)
Out[76]:
      energy  health  transport
id
1122       0       1          1
3344       1       0          2
5566       2       0          1

关于python-3.x - get_dummies 并一起计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497865/

相关文章:

python - pandas 添加更高级别的列多重索引

python - 类型错误:write() 中不支持类型 <type 'list' >

python - 使用 Pandas 按组获取计数

python - 通过python上的selenium headless chrome下载文件

python-3.x - 如何比较多逻辑语句中数据帧之间的日期时间?

python - 如何优化 Python 程序

Python pandas to_excel 'utf8' 编解码器无法解码字节

python - Python 中的 Hive 子字符串等效项

python - 在使用 `types.new_class` 创建的类上设置模块

python - 用于匹配除标点符号之外的所有非单词的正则表达式?