2017-07-20 21 views
0

我有大約12 dataframes,我期待着垂直串聯,所以我使用下面的代碼行:尋求一種簡單的方式來訂購我的DFS將它們串聯

all_data=pd.concat([df1,df2,df3....,df12],axis=0) 

當打印all_data的所產生的錯誤通知

cannot concatenate a non-NDFrame object 

思考的問題是不是哪裏typeDataFrame我檢查了所有類型的DFS,並且所有的結果爲:

class 'pandas.core.frame.DataFrame' 

經過幾個小時'我想'我找到了錯誤的根源。

儘管所有的dfs共享相同的列名,但它們並不遵循相同的順序。例如:

list(df1.columns)=[title1,title2,title3] 

而不同df是:

list(df3.columns)=[title2,title3,title1] 

我的問題是:

有什麼辦法我可以爲了每個數據幀的DFS列,這樣我可以將它們連接起來垂直而不需要單獨處理每一個?

我的意思是,我可以只使用一行代碼來排序列嗎?

預先感謝您閱讀我的文章

回答

2

讓我們試試這個使用列表中理解和reindex_axis

pd.concat([d.reindex_axis(sorted(d.columns),axis=1) for d in [df1,df2,df3,....df12]]) 
+0

返回該名單'對象有沒有屬性「reindex_axis」我supposse這可能是因爲DF1 ,df2,ect實際上是dfs(作爲函數的結果)存儲在變量 – ge00rge

+0

我剛剛發現了一個錯字。再試一次。 –

+0

產生同樣的錯誤: AttributeError:'list'對象沒有屬性'reindex_axis' – ge00rge

相關問題