mit dem folgenden Datenrahmen,Konvertieren eines Python-Datenrahmens mit mehreren Zeilen in eine Zeile mit Python Pandas?
df = pd.DataFrame({'device_id' : ['0','0','1','1','2','2'],
'p_food' : [0.2,0.1,0.3,0.5,0.1,0.7],
'p_phone' : [0.8,0.9,0.7,0.5,0.9,0.3]
})
print(df)
Ausgang:
device_id p_food p_phone
0 0 0.2 0.8
1 0 0.1 0.9
2 1 0.3 0.7
3 1 0.5 0.5
4 2 0.1 0.9
5 2 0.7 0.3
Wie diese Transformation erreichen?
df2 = pd.DataFrame({'device_id' : ['0','1','2'],
'p_food_1' : [0.2,0.3,0.1],
'p_food_2' : [0.1,0.5,0.7],
'p_phone_1' : [0.8,0.7,0.9],
'p_phone_2' : [0.9,0.5,0.3]
})
print(df2)
Ausgang:
device_id p_food_1 p_food_2 p_phone_1 p_phone_2
0 0 0.2 0.1 0.8 0.9
1 1 0.3 0.5 0.7 0.5
2 2 0.1 0.7 0.9 0.3
Ich versuche es groupby verwenden, um zu erreichen, gilt, agg ...
Aber ich kann immer noch nicht, diese Transformation erreichen.
aktualisiert
Mein letzter Code:
df.drop_duplicates('device_id', keep='first').merge(df.drop_duplicates('device_id', keep='last'),on='device_id')
I su79eu7k 's und A-Za-z ist Zeit und Mühe zu schätzen.
Worte sind nicht genug, um meine Dankbarkeit auszudrücken.
Mögliche Duplikat von [Lang weiten Daten. Pandas] (http://stackoverflow.com/questions/34988040/long-to-wide-data-pandas) –
Vielen Dank für eine weitere Antwort für mich. –