SQL 中 Python Pandas value_counts 的等价物是啥?

Posted

技术标签:

【中文标题】SQL 中 Python Pandas value_counts 的等价物是啥?【英文标题】:What is the equivalent of Python Pandas value_counts in SQL?SQL 中 Python Pandas value_counts 的等价物是什么? 【发布时间】:2018-08-22 10:51:39 【问题描述】:

在SQL之前学过python和pandas,所以这个问题有点基础。

例如,我有一个 type 列,其值为 1、2、3。

然后当我执行 df['type'].value_counts 时,我可以得到type 的统计信息,可能类似于

1: 1000 rows
2: 220 rows
3: 100 rows

我想知道SQL中的等价物是什么?我认为应该是关于 group_by 和 count 的东西?

【问题讨论】:

【参考方案1】:

如果您想知道每个值在一列中出现的次数,请使用:

SELECT type, count(*)
FROM table
GROUP BY type

【讨论】:

如何规范化?例如获取百分比值。我们需要子查询吗? 我是这样解决的:SELECT status, 100*CAST(COUNT(*) AS FLOAT) / (SELECT COUNT(*) FROM emails) FROM emails GROUP BY status【参考方案2】:
SELECT type, count(1) as num_types
FROM table
GROUP BY type

将返回等效的行数。

【讨论】:

以上是关于SQL 中 Python Pandas value_counts 的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Pandas介绍

使用 Pandas 在 Python 中处理大型 SQL 查询?

PANDAS 中类似 SQL 的窗口函数:Python Pandas Dataframe 中的行编号

如何在 python/pandas 中使用 where 条件转换 sql 计数?

[Python话说NBA]pandas分组操作groupby方法与sort_values排序方法

Python Pandas pandas.read_sql_table函数方法的使用