熊猫“计数(不同)”等效

新手上路,请多包涵

我使用 Pandas 作为数据库替代品,因为我有多个数据库( OracleSQL Server 等),并且我无法将命令序列转换为 SQL 等价物。

我在 DataFrame 中加载了一个表,其中包含一些列:

 YEARMONTH, CLIENTCODE, SIZE, etc., etc.

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

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

结果将是

201301    5000
201302    13245

我怎样才能在熊猫中做到这一点?

原文由 Adriano Almeida 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 661
2 个回答

我相信这就是你想要的:

 table.groupby('YEARMONTH').CLIENTCODE.nunique()

例子:

 In [2]: table
Out[2]:
   CLIENTCODE  YEARMONTH
0           1     201301
1           1     201301
2           2     201301
3           1     201302
4           2     201302
5           2     201302
6           3     201302

In [3]: table.groupby('YEARMONTH').CLIENTCODE.nunique()
Out[3]:
YEARMONTH
201301       2
201302       3

原文由 Dan Allan 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是另一种方法,它更简单。假设您的数据框名称是 daat 并且列名称是 YEARMONTH

 daat.YEARMONTH.value_counts()

原文由 StatguyUser 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏