猿问

对应的熊猫数(不同)

我使用pandas作为数据库替代品,因为我有多个数据库(oracle,mssql等),并且无法对SQL等效命令进行一系列命令。


我在DataFrame中加载了一个带有一些列的表:


YEARMONTH, CLIENTCODE, SIZE, .... etc etc

在SQL中,每年计算不同客户端的数量将是:


SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;

结果将是


201301    5000

201302    13245

如何在熊猫中做到这一点?


交互式爱情
浏览 443回答 3
3回答

阿晨1998

我相信这就是您想要的:table.groupby('YEARMONTH').CLIENTCODE.nunique()例:In [2]: tableOut[2]:    CLIENTCODE  YEARMONTH0           1     2013011           1     2013012           2     2013013           1     2013024           2     2013025           2     2013026           3     201302In [3]: table.groupby('YEARMONTH').CLIENTCODE.nunique()Out[3]: YEARMONTH201301       2201302       3

牧羊人nacy

这是另一种方法,非常简单,可以说您的数据框名称为daat,列名称为YEARMONTHdaat.YEARMONTH.value_counts()

江户川乱折腾

使用crosstab,这将返回比groupby nuniquepd.crosstab(df.YEARMONTH,df.CLIENTCODE)Out[196]: CLIENTCODE  1  2  3YEARMONTH          201301      2  1  0201302      1  2  1稍作修改后,产生结果pd.crosstab(df.YEARMONTH,df.CLIENTCODE).ne(0).sum(1)Out[197]: YEARMONTH201301    2201302    3dtype: int64
随时随地看视频慕课网APP

相关分类

Python
我要回答