2016-11-17 83 views
1
的字典列

假設我有的pandas dataframes,其中鍵是0, 1, 2, ..., 999一個字典,並且這些值都是這樣dataframes(test_df):熊貓:迭代級聯存儲在dataframes

  A   B   C 
0 1.438161 -0.210454 -1.983704 
1 -0.283780 -0.371773 0.017580 
2 0.552564 -0.610548 0.257276 
3 1.931332 0.649179 -1.349062 
4 1.656010 -1.373263 1.333079 
5 0.944862 -0.657849 1.526811 

說,索引意味着什麼給你,並要建立一個新的數據幀,其中,列AB被連接:

mydf=pd.concat([test_df[0]['A'],test_df[0]['B']], axis=1, keys=['A','B'])

現在,我可以在for循環中使用這一行,它遍歷我的數據框字典中的所有鍵?

如果不是,那麼將採取另一種方式做到這一點?結果將是一個有兩列的數據幀,分別爲AB6x1000行。索引列因此將從0變爲5999

回答

4

如果df_dic是你的字典裏,你可以這樣做:

pd.concat([df[['A', 'B']] for df in df_dic.values()]).reset_index(drop=True) 

下面是結果是什麼樣子,如果df_dic包含兩個鍵值對:

enter image description here

+0

就放心:我認爲我不會失去A-to-B配對,對嗎? – FaCoffee

+1

當你做'df [['A','B']]'時,它從你的數據框中選擇列'A'和'B',所以列表理解創建一個數據框列表,其中'A'和'來自每個數據幀的「B」與原始數據幀中的順序相同。所以是的,它不應該。 – Psidom