2016-03-07 85 views
3

我通过pandas的read_sql和外部应用程序(DbVisualizer)运行完全相同的查询。pandas read_sql不读取所有行

DBVisualizer中返回206行,而大熊猫返回178

我曾尝试通过基于在How to create a large pandas dataframe from an sql query without running out of memory?提供的信息卡盘读取来自熊猫的数据,并没有做出改变。

这可能是什么原因以及如何补救?

查询:

select * 
from rainy_days 
where year=’2010’ and day=‘weekend’ 

的包含列:日期,年份,星期,在这一天,温度,geo_location(每个位置行),测风量的雨,雨水量的前一天,等等。

确切的Python代码(减去连接方式)是:

import pandas 
from sqlalchemy import create_engine 

engine = create_engine(
    'postgresql://user:[email protected]/weatherhist?port=5439', 
) 

query = """ 
     select * 
     from rainy_days 
     where year=’2010’ and day=‘weekend’ 
     """ 
df = pandas.read_sql(query, con=engine) 
+0

你正在使用奇怪的引号('year ='2010''),我不知道这是否是一个原因,但你可以用普通的单引号替换它们吗? (''') – joris

+0

有没有解决这个问题的方法?我遇到了同样的问题。 – medev21

回答

0

什么工作对我来说:

  1. 下降指数
  2. 出口整个事情到CSV:
  3. 删除所有行:

    DELETE FROM表

  4. 导入CSV早在

  5. 重建指数

I th墨它会去更快,如果我用了熊猫:

df = read_csv(..) 
df.to_sql(..) 

我想这应该很容易工作到X毫米排表,但对于真正的大表可能是放缓。

+0

在SQL中使用奇怪的引号来区分字段名和保留字,例如, SELECT \'right \'FROM ... – kztd

相关问题