首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单pandasql连接正在失败

简单pandasql连接正在失败
EN

Stack Overflow用户
提问于 2015-01-29 18:19:38
回答 1查看 1.6K关注 0票数 0

我正在试图理解为什么以下内容在pandasql中失败

代码语言:javascript
复制
import pandas as pd
import pandasql as pdsql
def pysql(q): return pdsql.sqldf(q, globals())

type_table = {
    "type_id" : [101, 102],
    "type_name" : ["Go", "Stop"]
}

types = pd.DataFrame(type_table)
print 'Table "types":'
print types

events = pd.DataFrame(
{
    "type" : [101, 101, 102, 101, 102, 102],
    "time" : [1, 2, 3, 4, 5, 6],
    "success" : [0, 0, 1, 1, 1, 1]
})
print '\nTable "events":'
print events

query = """SELECT t.type_name, count(e.success) as event_count 
FROM types AS t, events AS e
WHERE t.type_id = e.type
GROUP BY t.type_name;
"""
print "\nQuery:"
print query
print "Result:"
print pysql(query)

这将返回None,但我希望它返回类似的内容

代码语言:javascript
复制
  type_name  event_count
0   Go              3
1   Stop            3

SQLite联接是否有我不理解的限制,或者这是pandasql的一个问题?我已经在Access中尝试过这个示例,它在这里工作得很好,但是也许有一种更可移植的方法来使用SQL (非常可能),或者使用pandas的简单方法。

嗯-即使是更简单的连接

代码语言:javascript
复制
SELECT types.type_name, events.time                                                                                     
FROM types, events                                                                                                      
WHERE types.type_id = events.type

失败了。肯定很困惑。

编辑:给出@ari的建议,我用我的真实数据(几百万行)尝试了这一点,并发现对于我的实际示例来说,这样做要快得多

代码语言:javascript
复制
events[events.success == 0].replace(name_map).groupby('type').size()

而不是去做

代码语言:javascript
复制
events.replace(name_map).groupby('type').success.size()

其中name_map是从上面的types表创建的映射。

这两种查询都比SQL查询快得多,所以我可能应该简单地讨论一下,但我仍然想知道为什么它不能工作。

EN

回答 1

Stack Overflow用户

发布于 2015-12-10 06:08:48

如果包含JOIN语句,它就能工作:

代码语言:javascript
复制
query = """SELECT t.type_name, count(e.success) as event_count 
FROM types t JOIN events e ON t.type_id = e.type
GROUP BY t.type_name
"""
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28221798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档