2013-01-16 6 views
5

Nach dem Beispiel hierrmagic, IPython und Zusammenfassung Informationen

http://www.randalolson.com/2013/01/14/filling-in-pythons-gaps-in-statistics-packages-with-rmagic/

versuchte ich das gleiche auf einem anderen Datensatz hier, in einem IPython Notebook.

https://github.com/burakbayramli/kod/blob/master/delltest/dell.tgz

from pandas import * 
orders = read_csv("dell.csv",sep=",") 
%load_ext rmagic 
%R -i orders print(summary(orders)) 

ich

 Length Class Mode 
[1,] 25  -none- list 
[2,] 25  -none- list 
[3,] 25  -none- list 
.. 

die gleiche jedoch in R

data <- read.csv ("dell.csv",header=TRUE,sep=",") 
print (summary(data)) 

mir die korrekte Zusammenfassung Informationen gibt.

 rank  per_customer_count total_total_amount orderid  
Min. : 1.000 Min. : 1.000  Min. : 0.14 Min. : 1 
1st Qu.: 2.000 1st Qu.: 6.000  1st Qu.: 866.11 1st Qu.: 2964 
Median : 4.000 Median : 8.000  Median : 1764.08 Median : 5980 
Mean : 4.997 Mean : 9.426  Mean : 2004.95 Mean : 5987 
3rd Qu.: 7.000 3rd Qu.:12.000  3rd Qu.: 2856.06 3rd Qu.: 9004 
... 

Irgendwelche Ideen?

+0

Als Vermutung, es ist die Pandas Datenrahmen an eine R-Matrix umwandelt, anstatt ein R Datenrahmen. Wir sollten das verbessern. –

+0

@ Thomas-K: Es schien mir, dass es in eine Liste von Listen (von Listen) umgewandelt wurde. Wir sollten ein Problem auf der Entwickler-Website für ipython öffnen (macht dort mehr Sinn als auf der Website von rpy2) und arbeiten an der Verbesserung der Konvertierungsregeln, die rmagic verwendet. – lgautier

+0

Ich habe das Problem auf der GH-Seite für ipython erstellt - https://github.com/ipython/ipython/issues/2797 – user423805

Antwort

2

Ich hatte einen kurzen Blick und es scheint eine Reihe von Situationen zu geben, in denen die ipython magic das Umwandlungsrecht nicht bekommt. Ich muss mich mit ihnen in Bezug auf rmagic und mehr Magie in Verbindung setzen.

In der Zwischenzeit sollten Sie in der Lage sein, um zu kochen, was Sie aus dem Code-Snippet, um die Fortschritte müssen unter:

import pandas 
orders = pandas.read_csv("dell.csv", sep=",") 
%load_ext rmagic 

import rpy2.robjects 
d = dict() 
for i, (k,v) in enumerate(orders.iteritems()): 
    print("%s (type: %s - %i/%i)" %(k, v.dtype.kind, i, orders.shape[1])) 
    if v.dtype.kind == 'O': 
     v = rpy2.robjects.vectors.StrVector(v) 
    d[k] = rpy2.robjects.conversion.py2ri(v) 
df = rpy2.robjects.DataFrame(d) 

def print_rsummary(x): 
    print(rpy2.robjects.baseenv['summary'](x)) 

print_rsummary(df) 
+0

Beachten Sie, dass diese Funktionalität jetzt in rpy2 2.3.3+ verfügbar ist (siehe http://rpy.sourceforge.net/rpy2/doc-2.3/html/changes.html?highlight=pandas)! –