Tengo una trama de datos pandas con cada día como una columna. Me gustaría convertir las fechas en una columna única de datos para realizar un análisis. He intentado buscar en muchos lugares, pero ninguno de ellos hablar de este escenario. ¿Me podría ayudar con esto.
Product_ID 1/22/2020 1/23/2020 1/24/2020 1/25/2020 1/26/2020
ABC 1 3 2 3 5
ABD 2 1 2 2 5
ABC 0 1 0 3 4
ABD 1 1 1 3 8
ABC 3 0 0 3 4
ABE 6 2 2 1 5
La salida estoy buscando es:
Date ABC ABD ABE
1/22/2020 4 3 6
1/23/2020 7 2 2
1/24/2020 2 3 2
1/25/2020 9 5 1
1/26/2020 13 13 5
Su sumando los datos de las columnas duplicadas.
Editar:
La agrupación de la ID_Producto hizo me la suma de cada producto para cada fecha, pero todavía no puedo extraer las fechas como una columna 'Fecha' diferente.
Si el marco inicial de datos es el siguiente:
data = {
'Product_ID': {0: 'ABC', 1: 'ABD', 2: 'ABC', 3: 'ABD', 4: 'ABC', 5: 'ABE'},
'1/22/2020': {0: 1, 1: 2, 2: 0, 3: 1, 4: 3, 5: 6},
'1/23/2020': {0: 3, 1: 1, 2: 1, 3: 1, 4: 0, 5: 2},
'1/24/2020': {0: 2, 1: 2, 2: 0, 3: 1, 4: 0, 5: 2},
'1/25/2020': {0: 3, 1: 2, 2: 3, 3: 3, 4: 3, 5: 1},
'1/26/2020': {0: 5, 1: 5, 2: 4, 3: 8, 4: 4, 5: 5}
}
df = pd.DataFrame(data)
print(df)
Product_ID 1/22/2020 1/23/2020 1/24/2020 1/25/2020 1/26/2020
0 ABC 1 3 2 3 5
1 ABD 2 1 2 2 5
2 ABC 0 1 0 3 4
3 ABD 1 1 1 3 8
4 ABC 3 0 0 3 4
5 ABE 6 2 2 1 5
puede agrupar los datos, como @ Quang Hoang señalado en el comentario anterior. Y para conseguir Date
la columna, .reset_index()
y .rename()
la columna de índice de edad a Date
. Si lo desea, también puede cambiar el nombre de eje de la columna. El código es el siguiente:
df_new = df\
.groupby('Product_ID').sum().T\
.reset_index()\
.rename(columns={'index': 'Date'})\
.rename_axis(None, axis='columns')
print(df_new)
Date ABC ABD ABE
0 1/22/2020 4 3 6
1 1/23/2020 4 2 2
2 1/24/2020 2 3 2
3 1/25/2020 9 5 1
4 1/26/2020 13 13 5