2015-05-27 150 views
3

我有一個熊貓Series對象,每個值爲DataFrame。我試圖將其轉換爲單個DataFrame,其中所有Series值(個人DataFrame)堆疊在一起。我怎樣才能達到這個沒有循環?pandas:將DataFrame系列轉換爲單個DataFrame

一個玩具的例子,下面生成測試對象(results)。

import pandas as pd 
import numpy as np 
numrows = 10000 

def toy_function(x): 
    silly_sequence = np.random.uniform(10, 100, (x+1)) 
    toy = pd.DataFrame({'ID':pd.Series(np.random.random_integers(1,20,3)),'VALUE':pd.Series((np.median(silly_sequence),np.mean(silly_sequence), np.max(silly_sequence)))}) 

    return toy 

results = pd.DataFrame({'ID':range(numrows)})['ID'].apply(toy_function) 

resultsSeries類型的,並且每個元素是一個DataFrame像這樣:

In [1]: results[1] 
Out[1]: 
    ID  VALUE 
0 17 40.035398 
1 8 40.035398 
2 20 66.483083 

我正在尋找一種方法來堆疊results[1]results[2]等在彼此的頂部,以產生一個數據幀像這樣:

ID  VALUE 
0 17 40.035398 
1 8 40.035398 
2 20 66.483083 
4 12 25.035398 
5 1 25.135398 
6 19 65.553083 
... 

回答

6

串聯結果,而忽略你的索引,而這樣做:

df_stacked = pd.concat([r for r in results], ignore_index=True) 
相關問題