2016-12-01 71 views
1

我想收集多個數據框到一個單一的變量,但我在Python中這樣做有困難。Python的等價物R的熊貓數據框列表

我想R中要執行的代碼如下

df1 <- data.frame() 
df2 <- data.frame() 
my_collection <- list(my_df1 = df1, my_df2 = df2) 

這讓我做好事,如調用基於名稱(如my_collection[["my_df1"]])個人數據frams。

問題是,我無法在Python中找到一個解決方案,它允許我將它們合併爲一個可搜索的單個變量。我有點被困在Python術語中,因此很難指向正確的方向。

任何幫助能夠結合將非常感激!謝謝!

回答

3

像你想要一個dict這聽起來對我說:

In [6]: df1 = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]}) 

In [7]: df2 = pd.DataFrame({'c':[7,8,9], 'd':[10,11,12]}) 

In [8]: df1 
Out[8]: 
    a b 
0 1 4 
1 2 5 
2 3 6 

In [9]: df2 
Out[9]: 
    c d 
0 7 10 
1 8 11 
2 9 12 

In [10]: frames = dict(my_df1=df1, my_df2=df2) 

In [11]: frames['my_df1'] 
Out[11]: 
    a b 
0 1 4 
1 2 5 
2 3 6 

In [12]: frames['my_df2'] 
Out[12]: 
    c d 
0 7 10 
1 8 11 
2 9 12 

注意,我用dict文字在DataFrame構造,但我使用了dict建築工只是這樣的語法看起來一樣的r。

您也可以使用文字太:

In [13]: frames2 = {'foo':df1, 'bar':df2} 

In [14]: frames2['foo'] 
Out[14]: 
    a b 
0 1 4 
1 2 5 
2 3 6 

In [15]: frames2['bar'] 
Out[15]: 
    c d 
0 7 10 
1 8 11 
2 9 12 

注意,R名單基本都是陣列,允許用於標籤,但複雜性是一樣的陣列(也許數組列表)。他們正在整理Python list s。 A dict是一個運行時複雜度非常不同的散列表。它更像是一個R環境的等價物(或者說,R環境在底層使用什麼 - 我不認爲R具有簡單的散列映射數據結構)。

+0

非常感謝您的背景資料! –