我試圖建立一個表時SQLAlchemy的,至於現在的列中出現的字母順序設置列的順序,我現在有:設置排序
def data_frame(query, columns):
def make_row(x):
return dict([(c, getattr(x, c)) for c in columns])
return pd.DataFrame([make_row(x) for x in query])
PackL = create_engine('mssql+pyodbc://u:[email protected]/db1?driver=SQL Server', echo=False)
Fabr = create_engine('mssql+pyodbc://u:[email protected]/db2?driver=SQL Server', echo=False)
Session = sessionmaker(bind=PackL)
session = Session()
Base = declarative_base()
metadata = MetaData()
class Tranv(Base):
__tablename__= "Transactions"
__table_args__= {'autoload': True, 'autoload_with':PackL}
newvarv = session.query(Tranv).filter_by(status='SCRAP').filter(Tranv.time_stamp.
between('2015-10-01', '2015-10-09'))
session.close()
dfx = data_frame(newvarv, ['action', 'employee_number', 'time_stamp', 'qty',
'part_number', 'card_number'])
當前dfx具有按字母順序排列的列,但我希望它按照我在創建數據框dfx時定義列的順序對它們排序。因此,訂單可以是行動,員工編號,時間戳,數量,零件編號,卡號。我可以很容易地用熊貓做到這一點,但這似乎是額外的(和不必要的)步驟。
我搜索了文檔,谷歌,& stackoverflow但沒有什麼真的似乎符合我的需求。由於我還是SQLAlchemy的新手,我很感激任何幫助。我的想法是,因爲我自動加載表格,我無法輕鬆定義列的順序(我確定有一種解決方法,但沒有線索在可能找到的文檔中的位置) ?
我想你也可以使用'dfx = pd.read_sql_query(newvarv,PackL)'將查詢轉換爲數據框而不是編寫自己的方法(但不完全確定)。 – joris
要對我自己的評論發表評論,您需要傳遞'newvarv.selectable',查看我的更新回答 – joris