python - 如何获取熊猫中列的频率计数?
问题描述
我想知道如何获取熊猫数据框项目的频率计数,如下面的问题:
import numpy as np
import pandas as pd
df = pd.DataFrame({'A': [1,1,2,3,5,2],
'B': [10,10,10,300,400,500],
'C': ['p','p','q','q','q','q']})
print(df)
A B C
0 1 10 p
1 1 10 p
2 2 10 q
3 3 300 q
4 5 400 q
5 2 500 q
所需输出
A B C
(1,2) (10,3) ('p', 2)
(2,2) (300,1) ('q', 4)
(3,1) (400,1)
(5,1) (500,1)
解决方案
你也可以试试:
s=df.stack().groupby(df.stack()).transform('count').unstack()
final=pd.concat([df,s])
final.groupby(final.index).agg(tuple)
A B C
0 (1, 2) (10, 3) (p, 2)
1 (1, 2) (10, 3) (p, 2)
2 (2, 2) (10, 3) (q, 4)
3 (3, 1) (300, 1) (q, 4)
4 (5, 1) (400, 1) (q, 4)
5 (2, 2) (500, 1) (q, 4)
推荐阅读
- ubuntu-18.04 - 在 Ubuntu 上进行 apt 更新时出现 GPG 错误(EXPKEYSIG)
- python - Moviepy:用黑色边框调整图像大小
- scala - 如何从 Scala 的配置中传递持续时间变量?
- python - 如何在pygame中调试?
- angular - 解析器获取数据后角度路由器无法导航
- python - 在记忆游戏中销毁按钮 - Python Tkinter
- javascript - 对此作出反应。不是函数
- android - 如何将 Activity(rootview,其他)放到 SurfaceTexture
- mongodb - 在本地设置 mongo 数据库
- javascript - Instanceof 'Class' 使用模拟对象返回 false