1. ホーム
  2. python

[解決済み] Pandas 'count(distinct)' と同等です。

2022-03-15 02:23:29

質問

複数のデータベースを持っているため、データベースの代用としてPandasを使っています( オラクル , SQLサーバー など)、一連のコマンドをSQLに相当するものにすることができないのです。

DataFrameにいくつかのカラムを持つテーブルをロードしています。

YEARMONTH, CLIENTCODE, SIZE, etc., etc.

SQLでは、1年ごとに異なるクライアントの量をカウントするには、次のようになります。

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

そして、結果は次のようになります。

201301    5000
201302    13245

Pandasでそれを行うにはどうすればよいのでしょうか?

どのように解決するのですか?

これがあなたの欲しいものだと思います。

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