【问题标题】:SQL Table to Pandas DataFrameSQL 表到 Pandas DataFrame
【发布时间】:2021-03-29 06:10:05
【问题描述】:

我正在使用带有 Psycopg2 库的 PostgreSQL 数据库。 我想获取 SQL 表并将其转换为 pd.DataFrame。 所以我需要将 SQL 表转换为像 {col1:[val1,val2], col2:[val1,val2]} 这样的字典,但是当我使用 SELECT * FROM tablename 时,它不包含列名。 我不想使用 pandas 函数直接连接到 SQL。 如果你知道如何像我上面提到的那样将 SQL 表作为字典获取,如果你写的话我很高兴。

提前感谢您的帮助。

【问题讨论】:

    标签: python sql pandas postgresql


    【解决方案1】:

    您可以在执行查询后从光标中的description-attribute 中提取列名:

    cursor.execute("SELECT * FROM tablename")
    columns = [desc[0] for desc in cursor.description]
    

    之后,您应该能够使用 columns-argument 将获取的数据解析为具有正确列名的 DataFrame:

    data_df = pd.DataFrame(cursor.fetchall(), columns=columns)
    

    最后使用to_dict将DataFrame转换为以列表为值的字典:

    data_dict = data_df.to_dict(orient="list")
    

    【讨论】:

    • 谢谢。我会试试看。我想我不需要将它转换为字典,因为我需要数据框。字典是不必要的。
    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 2015-03-16
    • 2018-01-23
    • 1970-01-01
    • 2021-10-06
    • 2019-05-18
    相关资源
    最近更新 更多