Frage

Mit psycopg2, bekomme ich aufgrund der Abfrage in dieser Form:

[(15002325, 24, 20, 1393, -67333094L, 38, 4, 493,48763257822799, 493,63348372593703), (15.002.339, 76, 20, 1393 -67333094L, 91, 3, 499,95845909922201, 499,970048093743), (15.002.431, 24, 20, 1394, -67333094L, 38, 4, 493,493464900383, 493,63348372593703), (15.002.483, 76, 20, 1394, -67333094L, 91, 3, 499,959042442434, 499,97304310494502)]

Ich versuche, diese verschachtelte Tupel / Liste in R Datenrahmen mit RPY2 zu konvertieren: mit neun Spalt mit dem Namen und vier Reihe von Daten (Anzahl des Elements in dieser verschachtelten Liste))

Aber ich verstehe nicht, wie, ich versuche mit taggedList (in RPY2 Container-Bibliothek), aber ohne Erfolg .. Es scheint getaggten Liste nimmt eine Liste in einer Liste nur.

Thx für die Hilfe!

War es hilfreich?

Lösung

import rpy2.robjects as ro
r=ro.r

data=[(15002325, 24, 20, 1393, -67333094L, 38, 4, 493.48763257822799, 493.63348372593703), (15002339, 76, 20, 1393, -67333094L, 91, 3, 499.95845909922201, 499.970048093743), (15002431, 24, 20, 1394, -67333094L, 38, 4, 493.493464900383, 493.63348372593703), (15002483, 76, 20, 1394, -67333094L, 91, 3, 499.959042442434, 499.97304310494502)]
columns=zip(*data)
columns=[ro.FloatVector(col) for col in columns]
names=['col{i}'.format(i=i) for i in range(9)]
dataf = r['data.frame'](**dict(zip(names,columns)))
print(dataf)

#       col8 col6     col7      col4 col5 col2 col3     col0 col1
# 1 493.6335    4 493.4876 -67333094   38   20 1393 15002325   24
# 2 499.9700    3 499.9585 -67333094   91   20 1393 15002339   76
# 3 493.6335    4 493.4935 -67333094   38   20 1394 15002431   24
# 4 499.9730    3 499.9590 -67333094   91   20 1394 15002483   76

Beachten Sie, dass es eine R-Schnittstelle für postgresql , und dies kann ein liefern saubere Weise als durch Python und rpy2 gehen.

Wenn Sie Python benötigen, ist eine weitere Möglichkeit, um herauszufinden, die R-Befehle benötigt, um die Daten von postgresql zu laden und sie dann in Python nennen ro.r verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top