python - 将 Pandas 操作转换为 SQL 查询

标签 python sql postgresql

table = (df.groupby('name')['activity'].value_counts().unstack().fillna(0))

我有一个要创建的表,我可以在 python 中创建它,但我想在 sql 中创建它以获取它,如下所示:

activity tv football cooking chatting
name
chandler 0   0        3       2
monica   1   1        2       0
ross     3   2       1        1

我认为它应该是这样的,但我不能再进一步了。

SELECT name,
    COUNT(CASE WHEN END) AS ,
    COUNT(CASE WHEN END) AS
  FROM dataset
    GROUP BY name;

最佳答案

因此,您需要条件聚合:

SELECT name,
       SUM(CASE WHEN activity = 'tv' THEN 1 ELSE 0 END) AS tv,
       SUM(CASE WHEN activity = 'football' THEN 1 ELSE 0 END) AS football,
       SUM(CASE WHEN activity = 'cooking' THEN 1 ELSE 0 END) AS cooking,
       . . . 
FROM dataset
GROUP BY name;

关于python - 将 Pandas 操作转换为 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51542035/

相关文章:

postgresql - 为什么新创建的数据库的 postgres tx id 不从 1 开始?

database - 具有复合类型数组的 Postgres FTS

python - 从 Python 问题中运行 Shell 脚本

mysql - 每个唯一 ID 的计数值

sql - 如何在 SQL Server 中围绕动态数量的组对值进行分组

sql - DB Design : Does having 2 Tables (One is optimized for Read, 一个用于写入)提高性能?

sql - Postgresql - 从子字符串中删除任何空格

python - 用于 win32 平台的 Hadoop/Map-reduce 框架的替代品

python - 如何检查 keras 分类器/神经网络训练的类别?

python - 如何控制Python中的导入路径?