首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算大熊猫数据栏中的唯一值,就像Qlik中的那样?

计算大熊猫数据栏中的唯一值,就像Qlik中的那样?
EN

Stack Overflow用户
提问于 2017-08-18 15:15:32
回答 8查看 514.2K关注 0票数 236

如果我有这样的桌子

代码语言:javascript
复制
df = pd.DataFrame({
         'hID': [101, 102, 103, 101, 102, 104, 105, 101],
         'dID': [10, 11, 12, 10, 11, 10, 12, 10],
         'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'],
         'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C']
})

我可以在Qlik中做count(distinct hID),为唯一的hID计算出5的计数。我怎么用熊猫数据在蟒蛇身上做到这一点呢?或者可能是个矮胖的数组?同样,如果要做count(hID),我将在Qlik获得8。在熊猫身上有什么类似的方法呢?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2017-08-18 15:20:29

计数不同的值,使用nunique

代码语言:javascript
复制
df['hID'].nunique()
5

仅计数非空值,使用count

代码语言:javascript
复制
df['hID'].count()
8

计算包括空值在内的总值,使用size属性:

代码语言:javascript
复制
df['hID'].size
8

编辑以添加条件

使用布尔索引:

代码语言:javascript
复制
df.loc[df['mID']=='A','hID'].agg(['nunique','count','size'])

或者使用query

代码语言:javascript
复制
df.query('mID == "A"')['hID'].agg(['nunique','count','size'])

输出:

代码语言:javascript
复制
nunique    5
count      5
size       5
Name: hID, dtype: int64
票数 360
EN

Stack Overflow用户

发布于 2017-08-18 15:23:55

如果假设数据是数据的名称,则可以这样做:

代码语言:javascript
复制
data['race'].value_counts()

这将显示不同的元素及其发生的次数。

票数 184
EN

Stack Overflow用户

发布于 2017-08-18 15:23:54

或获取每一列的唯一值数:

代码语言:javascript
复制
df.nunique()

dID    3
hID    5
mID    3
uID    5
dtype: int64

pandas 0.20.0 pd.DataFrame.agg的新产品

代码语言:javascript
复制
df.agg(['count', 'size', 'nunique'])

         dID  hID  mID  uID
count      8    8    8    8
size       8    8    8    8
nunique    3    5    3    5

您一直能够在一个agg中执行groupby。最后我使用了stack,因为我更喜欢演示文稿。

代码语言:javascript
复制
df.groupby('mID').agg(['count', 'size', 'nunique']).stack()


             dID  hID  uID
mID                       
A   count      5    5    5
    size       5    5    5
    nunique    3    5    5
B   count      2    2    2
    size       2    2    2
    nunique    2    2    2
C   count      1    1    1
    size       1    1    1
    nunique    1    1    1
票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45759966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档