Wenn Sie hierher gekommen sind, um Informationen zum Zusammenführen von a
DataFrame
undSeries
zum Index zu erhalten , lesen Sie bitte diese Antwort .Die ursprüngliche Absicht des OP bestand darin, zu fragen, wie Serienelemente als Spalten einem anderen DataFrame zugewiesen werden sollen . Wenn Sie daran interessiert sind, die Antwort darauf zu erfahren , schauen Sie sich die von EdChum akzeptierte Antwort an.
Das Beste, was ich mir einfallen lassen kann, ist
df = pd.DataFrame({'a':[1, 2], 'b':[3, 4]}) # see EDIT below
s = pd.Series({'s1':5, 's2':6})
for name in s.index:
df[name] = s[name]
a b s1 s2
0 1 3 5 6
1 2 4 5 6
Kann jemand eine bessere Syntax / schnellere Methode vorschlagen?
Meine Versuche:
df.merge(s)
AttributeError: 'Series' object has no attribute 'columns'
und
df.join(s)
ValueError: Other Series must have a name
BEARBEITEN Die ersten beiden Antworten haben ein Problem mit meiner Frage hervorgehoben. Verwenden Sie daher zum Konstruieren Folgendes df
:
df = pd.DataFrame({'a':[np.nan, 2, 3], 'b':[4, 5, 6]}, index=[3, 5, 6])
mit dem Endergebnis
a b s1 s2
3 NaN 4 5 6
5 2 5 5 6
6 3 6 5 6
df
unds
gibt diese Antwort für mich einen leeren Datenrahmen zurück, nicht das in der Frage angeforderte Ergebnis. Wir möchten nicht mit dem Index übereinstimmen. Wir wollen dies
Werte an alle Zeilen von sendendf
.