400 Stimmen

Kombinieren von zwei Serien zu einem DataFrame in Pandas

Ich habe zwei Serien s1 und s2 mit den gleichen (nicht aufeinander folgenden) Indizes. Wie kombiniere ich s1 und s2 zu zwei Spalten in einem DataFrame und behalte einen der Indizes als dritte Spalte bei?

10voto

Bertrand L Punkte 232

Ich bin mir nicht sicher, ob ich deine Frage vollständig verstehe, aber ist das das, was du tun möchtest?

pd.DataFrame(data=dict(s1=s1, s2=s2), index=s1.index)

(index=s1.index ist hier nicht einmal notwendig)

8voto

Lorenzo A. Rossi Punkte 131

Eine Vereinfachung der Lösung basierend auf join():

df = a.to_frame().join(b)

7voto

John Punkte 828

Wenn Sie versuchen, Serien gleicher Länge zusammenzuführen, aber ihre Indizes nicht übereinstimmen (was eine häufige Situation ist), wird durch die Verkettung von ihnen an den Stellen, an denen sie nicht übereinstimmen, NA generiert.

x = pd.Series({'a':1,'b':2,})
y = pd.Series({'d':4,'e':5})
pd.concat([x,y],axis=1)

#Output (Ich habe Spaltennamen hinzugefügt, um es klarer zu machen)
Index   x    y
a      1.0  NaN
b      2.0  NaN
d      NaN  4.0
e      NaN  5.0

Angenommen, es ist Ihnen egal, ob die Indizes übereinstimmen, ist die Lösung, beide Serien neu zu indizieren, bevor Sie sie verketten. Wenn drop=False, was der Standardwert ist, wird Pandas den alten Index in einer Spalte des neuen Datenrahmens speichern (die Indizes werden hier aus Einfachheit entfernt).

pd.concat([x.reset_index(drop=True),y.reset_index(drop=True)],axis=1)

#Output (Spaltennamen hinzugefügt):
Index   x   y
0       1   4
1       2   5

1voto

Golden Lion Punkte 2590

Ich habe Pandas verwendet, um mein Numpy-Array oder iSeries in ein DataFrame umzuwandeln und dann eine zusätzliche Spalte mit dem Schlüssel 'Vorhersage' hinzugefügt. Wenn Sie das DataFrame wieder in eine Liste konvertieren müssen, verwenden Sie values.tolist()

output = pd.DataFrame(X_test)
output['prediction'] = y_pred

list = output.values.tolist()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X