einen Datenrahmen zu haben wie:Kombinieren Sie Spalten in einem Datenrahmen
import pandas
df = pandas.DataFrame({'a': [1, 2, 3], 'b': [9, 8, 7], 'c': [4, 5, 6]})
df
ich mit einem Datenrahmen haben möchte:
- eine Faktor/Kategorie Spalte
['a', 'b']
. Der Name dieser Spalte ist mir egal. - eine Säule, die den alten Wert der
a
oderb
Spalte hat, auf dem Faktor['a', 'b']
abhängig. Der Name dieser Spalte ist mir egal. - Halten
c
Spaltenwerte und den Namen (die tatsächliche Datenrahmen hat mehrere Spalten, die ich behalten möchte). - ich über die Reihenfolge der Spalten in dem resultierenden Datenrahmen, noch wenn einige (oder überhaupt) von ihnen nicht als Index gesetzt kümmern.
Dies ist ein Beispiel dafür, was Ich mag würde bekommen:
df['name_a'] = 'a'
df['name_b'] = 'b'
c0 = pandas.concat([df['name_a'], df['name_b']])
c1 = pandas.concat([df['a'], df['b']])
c2 = pandas.concat([df['c'], df['c']])
newdf = pandas.concat([c0, c1, c2], axis=1)
newdf
Gibt es einen besseren Weg, um das gleiche Ergebnis zu erzielen? Ich fühle, dass es sehr hässlich ist. Vielleicht eine pandas
Funktion, die ich vermisse und macht den Code viel sauberer und einfach zu verstehen?
Danke, das sieht ziemlich gut! Beachten Sie jedoch, dass "* der eigentliche Datenrahmen mehrere Spalten enthält, die ich behalten möchte *" (d. H .: viele 'c' Spalten). Gibt es eine Möglichkeit, dies zu tun, indem Sie 'a' und' b' als Parameter anstelle von 'c' verwenden? ('A' und 'b' ist immer 2, aber es gibt eine Menge von 'c' Spalten mit verschiedenen Namen, und ich möchte sie alle halten). – Peque
sicher, gib mir eine sek. – jezrael
Bitte überprüfen Sie update meine Antwort. – jezrael