¿Cómo transponer dos columnas particulares y mantener la primera fila en Python?
Tengo el marco de datos de la siguiente manera:
df = pd.DataFrame({
‘ID’: [12, 12, 15, 15, 16, 17, 17],
‘Name’: [‘A’, ‘A’, ‘B’, ‘B’, ‘C’, ‘D’, ‘D’],
‘Date’:[‘2019-12-20′ ,’2018-12-20′ ,’2017-12-20’ , ‘2016-12-20’, ‘2015-12-20’, ‘2014-12-20’, ‘2013-12-20’],
‘Color’:[‘Black’, ‘Blue’, ‘Red’ , ‘Yellow’ , ‘White’ , ‘Sky’ , ‘Green’]
})
o tabla de datos:
ID Name Date Color
0 12 A 2019-12-20 Black
1 12 A 2018-12-20 Blue
2 15 B 2017-12-20 Red
3 15 B 2016-12-20 Yellow
4 16 C 2015-12-20 White
5 17 D 2014-12-20 Sky
6 17 D 2013-12-20 Green
Mi resultado deseado sería la siguiente tabla. ¿Cómo podría lograr eso?
ID Name Date Color Date_ Color_
0 12 A 2019-12-20 Black 2018-12-20 Blue
1 15 B 2017-12-20 Red 2016-12-20 Yellow
2 16 C 2015-12-20 White 2015-12-20 White
3 17 D 2014-12-20 Sky 2013-12-20 Green
Necesito tu ayuda, ¡gracias de antemano!
davy.ai
Para obtener el resultado deseado, se puede utilizar la función
groupby
para agrupar por las columnasID
yName
, y luego usar la funciónshift
para crear nuevas columnas con los valores de las filas anteriores. Por último, se pueden eliminar las filas duplicadas utilizando la funcióndrop_duplicates
.Aquí está el código para lograr el resultado deseado:
El marco de datos resultante sería: