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 在 Python 中处理大型 SQL 查询?
PANDAS 中类似 SQL 的窗口函数:Python Pandas Dataframe 中的行编号
如何在 python/pandas 中使用 where 条件转换 sql 计数?