Das folgende ist meine Daten zusammenzufassen:mit wenigen Spalten Duplikate entfernen und die anderen Spalten
name id junk date time value value2
abc 1 1 1/1/2017 18:07:54 5 10
abc 1 2 1/1/2017 19:07:54 10 15
abc 2 3 2/1/2017 20:07:54 15 20
abc 2 4 2/1/2017 21:07:54 20 25
def 3 5 3/1/2017 22:07:54 25 30
def 3 6 3/1/2017 23:07:54 30 35
def 4 7 4/1/2017 12:07:54 35 40
def 4 8 4/1/2017 13:07:54 40 45
I basiert die Duplikate entfernen möchten auf drei Säulen, name
, id
und date
und nehmen den ersten Wert. Ich habe versucht, den folgenden Befehl ein:
data.drop_duplicates(subset=['name', 'id', 'date'],keep = 'first')
ich auch gruppieren möchten diese drei Spalten und nehmen Sie die Summe von value
und value2
Spalte und ich versuchte, folgende Spalte:
data[['name', 'id', 'date', 'value']].groupby(['name', 'id', 'date']).sum()
data[['name', 'id', 'date', 'value2']].groupby(['name', 'id', 'date']).sum()
Jetzt möchte ich alle beitreten drei Datenrahmen und nehmen Sie die Spalten. Ich denke, es sollte einen besseren Weg geben, dies zu tun? Im Folgenden ist der Ausgang ich suche:
name id junk date time value value2
abc 1 1 1/1/2017 18:07:54 15 25
abc 2 3 2/1/2017 20:07:54 35 45
def 3 5 3/1/2017 22:07:54 55 65
def 4 7 4/1/2017 12:07:54 75 85
Wo ich Duplikate zu prüfen, entfernen basierend auf name
, id
und date
Spalte, nehmen Sie den ersten Wert von junk
und time
Spalten und fügen Sie auch die value
und value2
Säulen.
Kann mir jemand dabei helfen?
ich das Aggregat in zwei Spalten nur wollen und haben die ersten Werte in den verbleibenden Spalten und die verbleibenden Spalten könnte sich ändern, und außerdem gibt es in meinen aktuellen Daten fast 75 Spalten und ich muss "Zeit" angeben: "zuerst", "Junk": "zuerst" für alles. Gibt es eine Möglichkeit, dies zu vermeiden? – haimen
Ja, Sie können Listenverständnis verwenden. gib mir eine Sekunde. – jezrael
Bitte überprüfen Sie die bearbeitete Antwort – jezrael