熊猫 read_sql 没有读取所有行

osh*_*016 6 sqlalchemy pandas

我通过 Pandas 的 read_sql 和外部应用程序 (DbVisualizer) 运行完全相同的查询。

DbVisualizer 返回 206 行,而 pandas 返回 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’
Run Code Online (Sandbox Code Playgroud)

列包含:日期、年份、工作日、当天的降雨量、温度、地理位置(每个位置的行)、风测量值、前一天的降雨量等。

确切的python代码(减去连接细节)是:

import pandas
from sqlalchemy import create_engine

engine = create_engine(
   'postgresql://user:pass@server.com/weatherhist?port=5439',
)

query = """
        select *
        from rainy_days
        where year=’2010’ and day=‘weekend’
        """
df = pandas.read_sql(query, con=engine)
Run Code Online (Sandbox Code Playgroud)

kzt*_*ztd -1

这不是修复,但对我有用的是重建索引:

  1. 删除索引

  2. 将整个内容导出到 csv:

  3. 删除所有行:

    从表中删除

  4. 将 csv 重新导入

  5. 重建索引

熊猫:

df = read_csv(..)
df.to_sql(..)
Run Code Online (Sandbox Code Playgroud)

如果这有效,那么至少您知道索引保持最新状态的某个地方存在问题。