首页 > 解决方案 > 如何获取熊猫中列的频率计数?

问题描述

我想知道如何获取熊猫数据框项目的频率计数,如下面的问题:

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)

标签: pythonpandas

解决方案


你也可以试试:

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)

推荐阅读