Ich würde gerne Zeilen in bestimmten Spalte Basis auf die Beziehung mit anderen Spalte aggregieren und erstellen Sie bestimmte Spalte, die aggregierte Daten im JSON-Format enthalten.Wie Zeilen zu kombinieren und in einer Zeile in Datenrahmen von Sql oder Python
Dies ist das Beispiel.
Original-Datentabelle
Child Name Child Age Father Name Father Age
Peter 5 Richard 40
James 15 Doug 45
Liz 2 Doug 45
Paul 6 Richard 40
Shirly 11 Charles 33
Eva 9 Chris 29
konvertierte Datentabelle wird entweder
Father Name Father Age Children
Richard 40 {"Peter":"5", "Paul":"6"}
Doug 45 {"James":"15","Liz":"2"}
Charles 33 {"Shirly" : "11"}
Chris 29 {"Eva" : "9"}
Oder
Father Name Father Age Children Name Children Age
Richard 40 {"Peter", "Paul"} {"5","6"}
Doug 45 {"James", "Liz"} {"15","2"}
Charles 33 {"Shirly"} {"11"}
Chris 29 {"Eva"} {"9"}
Mein Code ist
import pandas as pd
df = pd.DataFrame({
"Child Name" : ["Peter","James","Liz","Paul","Shirly","Eva"],
"Child Age" : ["5","15","2","6","11","9"],
"Father Name" : ["Richard","Doug","Doug","Richard","Charles","Chris"],
"Father Age" : ["40","45","45","40","33","29"] })
print df
g1 = df.groupby(["Father Name"])["Child Name"].apply(", ".join).reset_index()
g1.columns = ['Father Name','Children Name']
print g1
und wird die Ausgabe
Father Name Children Name
0 Charles Shirly
1 Chris Eva
2 Doug James, Liz
3 Richard Peter, Paul
ich kann nicht herausfinden sein, wie in den Spalten „Vater Alter“ und „Kinder Alter“ hinzuzufügen. Wie kann ich dies in Dataframe auf die effizienteste Weise konvertieren? Ich möchte Schleife über Python vermeiden, da es lange dauern wird, um zu verarbeiten.
Dank,
Ihre ursprüngliche Tabelle ist nicht normalisiert. Sie sollten eine separate Vater- und Kindertabelle haben. – Anand
Ich verstehe es nicht über die Normalisierung auf dem Originaltisch. Können Sie es mit einem einfachen Beispiel genauer erklären? –