2016-09-20 90 views
3

在木星的筆記本我創造了一些2-d-列表中的R像如何從R數據到大熊貓

%%R 
first <- "first" 
second <- "second" 

names(first) <- "first_thing" 
names(second) <- "second_thing" 

x <- list() 
index <- length(x)+1 
x[[index]] = first 
x[[index +1]] = second 

一個%Rpull x沒有返回不錯表現,而是一個ListVector。我怎樣才能把它轉換成更好的例如一個字典/ pd.Dataframe?到目前爲止,我沒有運氣以下http://pandas.pydata.org/pandas-docs/stable/r_interface.html pull from R

編輯

名單我想轉換將在2 d列表一樣results更新的代碼從剪斷上面

回答

1

只是切片ListVector

%Rpull x 
pd.DataFrame(data=[i[0] for i in x], columns=['X']) 

Image

如果你想,而不是一本字典:

dict([[i,j[0]] for i,j in enumerate(x)]) 
{0: 'first', 1: 'first'} 
+0

而不是X我想獲得鍵值 - 我該如何實現這一目標?我想處理names()屬性?例如我的我是一個labelForKPI \ n 0.xx_numericValue –

+0

請看看我的編輯爲一個二維列表 –

+0

您建議與字典作品相當不錯,除了參數的「名稱」丟失。我怎樣才能保持這些? –

0

因爲你創造的R列表(而不是說,一個數據幀), 返回的Python對象是ListVector

R列表可能有重複的名稱,從而使轉換爲dict的東西無法保證是安全的。

如果你覺得很幸運,並且想要一個字典,那就很簡單。 例如:

from rpy2.robjects.vectors import ListVector 
l = ListVector({'a':1, 'b':2}) 
d = dict(l.items()) 
+0

事實上,R到dataFrame的轉換會有很大的幫助。名稱confMatrix < - 表(數據,結果) err < - (confMatrix [「J」,「N」] + confMatrix [「N」,「J」])/ sum(confMatrix) acc < - (confMatrix [「J」,「J」] + confMatrix [「N」,「N」])/ sum(confMatrix) results < - list(err,acc)是我想要的二維列表的類型回到python –

+0

請參閱編輯格式的細節 –