gpt4 book ai didi

python - Pandas to_sql 中行的排序

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:22 25 4
gpt4 key购买 nike

我有一个订购的 Pandas Dataframe。

             a0               b0  c0     d0 370025442 370020440 370020436  \
1 31/08/2014 First Yorkshire 53 05:10 0 0.8333 1.2167
2 31/08/2014 First Yorkshire 53 07:10 0 0.85 1.15
3 31/08/2014 First Yorkshire 53 07:40 0 0.5167 0.7833
4 31/08/2014 First Yorkshire 53 08:10 0 0.7 1
5 31/08/2014 First Yorkshire 53 08:40 NaN NaN NaN
6 31/08/2014 First Yorkshire 53 09:00 0 0.5 0.7667
7 31/08/2014 First Yorkshire 53 09:20 0 0.5833 1
8 31/08/2014 First Yorkshire 53 09:40 0 0.4 0.7
9 31/08/2014 First Yorkshire 53 10:20 0 0.5333 1.0333
10 31/08/2014 First Yorkshire 53 10:40 0 0.4833 1
11 31/08/2014 First Yorkshire 53 11:00 0 0.3667 0.7
12 31/08/2014 First Yorkshire 53 11:20 0 0.5333 1.15
13 31/08/2014 First Yorkshire 53 11:40 0 0.3333 0.7667
14 31/08/2014 First Yorkshire 53 12:00 0 1.0167 1.5
15 31/08/2014 First Yorkshire 53 12:40 0 0.75 1.0333
.. ... ... .. ... ... ... ...
737 25/10/2014 First Yorkshire 53 21:40 0 1.0167 1.3
738 25/10/2014 First Yorkshire 53 22:40 0 0.5667 1

但是,当我将其转换为 SQL 时,顺序发生了变化(从第 13 行开始)并变为:

             a0               b0  c0     d0 370025442 370020440 370020436  \
0 31/08/2014 First Yorkshire 53 05:10 0 0.8333 1.2167
1 31/08/2014 First Yorkshire 53 07:10 0 0.85 1.15
2 31/08/2014 First Yorkshire 53 07:40 0 0.5167 0.7833
3 31/08/2014 First Yorkshire 53 08:10 0 0.7 1
4 31/08/2014 First Yorkshire 53 08:40 None None None
5 31/08/2014 First Yorkshire 53 09:00 0 0.5 0.7667
6 31/08/2014 First Yorkshire 53 09:20 0 0.5833 1
7 31/08/2014 First Yorkshire 53 09:40 0 0.4 0.7
8 31/08/2014 First Yorkshire 53 10:20 0 0.5333 1.0333
9 31/08/2014 First Yorkshire 53 10:40 0 0.4833 1
10 31/08/2014 First Yorkshire 53 11:00 0 0.3667 0.7
11 31/08/2014 First Yorkshire 53 11:20 0 0.5333 1.15
12 31/08/2014 First Yorkshire 53 14:00 0 0.4833 1.0167
13 31/08/2014 First Yorkshire 53 16:20 0 0.6833 1.15
14 31/08/2014 First Yorkshire 53 23:10 None None None
.. ... ... .. ... ... ... ...
736 25/10/2014 First Yorkshire 53 21:40 0 1.0167 1.3
737 25/10/2014 First Yorkshire 53 22:40 0 0.5667 1

数据是正确的,只是更改了行的顺序(从 SQL Server Management Studio 中查看 SQL 表可以确认这一点)。我检查了操作前后的输入表,没有改变,所以顺序问题一定是在转换成SQL的时候。

用于创建 SQL 表的代码是:

engine = sqlalchemy.create_engine("mssql+pyodbc://*server*?driver=SQL+Server+Native+Client+10.0?trusted_connection=yes")
conn = engine.connect()
art_array.to_sql(theartsql, engine, if_exists="replace", index=False)

(实际指定服务器的地方)

可能是什么原因造成的,我该如何解决?任何帮助将不胜感激...

编辑:我应该提到我使用的版本是:

Python 版本:2.7.8

Pandas 版本:0.15.1

SQLalchemy 版本:1.0.12

需要维护这些以与其他软件兼容。

最佳答案

那是正常SQL 表不维护行顺序。您需要“订购依据”才能获得正确的订单。在将数据移动到 SQL 之前,您可以包含一个行 ID(或索引)。那么,那么你就可以在Sql中“order by”了。

尝试这样的事情:

df
a
0 1.00
1 2.00
2 0.67
3 1.34

print df.reset_index().to_sql(xxxx)
index a
0 0 1.00
1 1 2.00
2 2 0.67
3 3 1.34

然后在 SQL 中,您可以“按”索引“排序”。“排序”语法可能因 SQL 数据库而异。

关于python - Pandas to_sql 中行的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38703823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com