经过大量处理后,我在内存中有一个 Pandas 数据框。在此过程之后,我根据 1 列对数据框进行排序。
但是,当我将此数据帧写入 Postgres 表时,有时行的顺序没有保留,就像在 Pandas 内存中一样。
我该如何解决?
代码片段:
result_df = result_df.sort_values(by=['D1RowNr'])
result_df.to_sql(table_name,engine, schema = schema,
if_exists='replace', index= False,
method = 'multi', chunksize = 300)
数据大小:~3000 Rows X ~90 Columns
,因此我使用 method= 'multi'
和 chucksize = 300
。没有这些参数,需要很多时间,有时机器会死机。
答案 0 :(得分:1)
我建议在数据框中添加一个具有所需顺序的额外列,然后在您的 SORT BY
中添加 SQL
:
result_df['Order'] = result_df.reset_index().index
创建一个从 0 到 len(result_df) 的额外列,您可以轻松地使用它在 SQL 数据库中进行排序。