我需要向我们的postgresql表中插入一个数据帧,但是当向我们的postgresql表发送数据帧时,由于某种原因,它会更改行的顺序。下面的代码用于将数据帧发送到我们的postgresql表
def postgresql(df, table):
# Connect to the PostgreSQL server
engine = create_engine(f'postgresql+psycopg2://{username}:{password}@{server}:5432/{database}')
df.to_csv("test.csv")
# Send dataframe to PostgreSQL table in database. Replace, if already exist
df.to_sql(table, engine, if_exists='replace', index=False)
return df
df.to_csv("test.csv")
创建一个csv文件名“test”,该csv文件如下所示。请注意,标记是按顺序排列的(而不是按字母顺序排列),数字是根据标记按升序排列的:
number name address city token
0 1 Alarm oxstreet 12 Reading eng
1 2 Computer pentaroad 4 Oxford eng
2 3 Music thisstreet 2 London eng
3 4 School schoolroad 45 London eng
4 1 Hospital madstreet 24 Manchester Owx
5 2 Bowling placestreet 5 Birmingham Owx
6 1 Hotel cemstreet 24 Liverpool JOC
7 2 Paintball shootstreet 2 Manchester JOC
8 3 Center examstreet 24 Bristol JOC
9 4 Computer comproad 24 Brigthon JOC
虽然,df.to_sql(table, engine, if_exists='replace', index=False)
将以下内容上载到sql表:
number name address city token
0 1 Alarm oxstreet 12 Reading eng
1 3 Center examstreet 24 Bristol JOC
2 2 Computer pentaroad 4 Oxford eng
3 3 Music thisstreet 2 London eng
4 4 School schoolroad 45 London eng
5 1 Hospital madstreet 24 Manchester Owx
6 2 Bowling placestreet 5 Birmingham Owx
7 1 Hotel cemstreet 24 Liverpool JOC
8 2 Paintball shootstreet 2 Manchester JOC
9 4 Computer comproad 24 Brigthon JOC
上面是表,可以在postgres表上看到,这对我来说非常奇怪,因为在插入到postgres表之前的dataframe看起来与此不同,所以如何以及为什么在postgres表上更改。谁有这方面的经验?也许,我应该尝试另一种插入postgres表的方法。我该怎么做
对于SQL来说,顺序并不重要。您可以使用:
ORDER_BY
并通过dump
将结果转换为.csv文件来检查查询。我猜您希望再次在pandas/qgis中对查询结果进行后处理相关问题 更多 >
编程相关推荐