从生成器到 Pandas DataFrame - 如何做到这一点?

问题描述 投票:0回答:1

嗨,可爱的聪明人社区!

我正在尝试将 Redshift 表中的一些数据加载到 pandas DataFrame 中。我必须承认,我在大学时代并没有太多使用 Pandas,而且更像是一个麻木的人。

我已成功使用 awswrangler 将数据查询为块:

import awswrangler as wr

iterator = wr.redshift.read_sql_query(
    sql="my_query_here",
    con=conn
    chunksize=1000
)

我可以获得这样的迭代器对象:

<generator object _iterate_results at 0x00000152583B78A0>

如何使用这个生成器来制作 DataFrame?查询本身还应该包括表中的列。

这可能真的很基本,但我想知道你是否知道该怎么做?也尝试过从 S3 存储桶中提取 csv 文件,但这对于权限来说似乎非常复杂,而且我不太擅长与权限相关的任何事情。

我也尝试过这个HOW - 将Python生成器转换为pandas数据框但不幸的是得到这个错误:

b'\x00'
sql pandas dataframe iterator amazon-redshift
1个回答
0
投票

如果使用

chunksize
参数,该函数将返回数据帧的迭代器。您可以轻松浏览它们:

for df in iterator:
    print(df.head())

返回的

df
包含您的列和最多
chunksize
行。

请注意,如果您希望最终有一个包含所有数据的数据框,则应删除

chunksize
参数。如果您不小心,合并数据帧会显着增加内存消耗。

© www.soinside.com 2019 - 2024. All rights reserved.