我有一個訂購的Pandas Dataframe。Pandas中的行的排序to_sql
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
大熊貓版本:0.15.1
SQLAlchemy的版本:1.0.12
這些都需要保持與其他軟件兼容。
難道你不需要'index = True'來保持順序嗎? –
是否將'if_exists =「替換爲''if_exists =」append「'有沒有影響? –
使用index = True包含表的正確索引值,但排序仍然是錯誤的(即索引的順序是:1,2,3,4,5,6,7,8,9,10,11, 18,24,35,43 ....),是的我試着if_exists =「追加」,但它不會改變任何東西。 – PaulB