相当于pandas groupby(' v1')。在postgres sql中应用(lambda x:[' v2'] .nunique())

时间:2018-02-19 14:36:37

标签: sql postgresql pandas

与posgres sql相同的pandas df.groupby('v1').apply(lambda x:['v2'].nunique())是什么?

即。给定一个表格,我想知道每个v2的{​​{1}}唯一值的数量。

3 个答案:

答案 0 :(得分:2)

也许你的意思是

SELECT v1, count(DISTINCT v2)
FROM df
GROUP BY v1;

答案 1 :(得分:0)

SELECT v1, COUNT(v2) FROM t GROUP BY v1;

OR

SELECT v1, COUNT(DISTINCT v2) FROM t GROUP BY v1;

答案 2 :(得分:0)

也请查看他的帖子array_agg。 这对我很有帮助。它会给你一个数组列表。我只是做了类似的事情:

SELECT directory, ARRAY_AGG(file_name) FROM table WHERE type = 'ZIP' GROUP BY directory;

结果是:

parent_directory | array_agg | ------------------------+----------------------------------------+ /home/postgresql/files | {zip_1.zip,zip_2.zip,zip_3.zip} | /home/postgresql/files2 | {file1.zip,file2.zip} |


这篇文章对我也有很大帮助:"Group By" in SQL and Python Pandas。 它基本上说,仅在可能的情况下使用SQL更为方便,但Python Pandas对于在过滤过程中实现额外的功能很有用。

我希望对您有帮助