Soy nuevo en Python y tengo problemas para manipular los datos en la biblioteca de pandas. Tengo una base de datos de pandas como esta:
Year Value
0 91 1
1 93 4
2 94 7
3 95 10
4 98 13
Y desea completar los años faltantes creando filas con valores vacíos, como esto:
Year Value
0 91 1
1 92 0
2 93 4
3 94 7
4 95 10
5 96 0
6 97 0
7 98 13
¿Cómo hago eso en Python? (Quiero hacer eso para poder trazar valores sin saltarme años)
Respuestas
6 para la respuesta № 1Me gustaría crear un nuevo marco de datos que tiene año comoun índice e incluye todo el intervalo de fechas que necesita cubrir. Luego, simplemente puede establecer los valores en los dos marcos de datos, y el índice se asegurará de que las filas correctas coincidan (he tenido que usar fillna para establecer los años faltantes en cero, de forma predeterminada se establecerán en NaN
)
df = pd.DataFrame({"Year":[91,93,94,95,98],"Value":[1,4,7,10,13]})
df.index = df.Year
df2 = pd.DataFrame({"Year":range(91,99), "Value":0})
df2.index = df2.Year
df2.Value = df.Value
df2= df2.fillna(0)
df2
Value Year
Year
91 1 91
92 0 92
93 4 93
94 7 94
95 10 95
96 0 96
97 0 97
98 13 98
Finalmente puedes usar reset_index
Si no quieres el año como tu índice:
df2.drop("Year",1).reset_index()
Year Value
0 91 1
1 92 0
2 93 4
3 94 7
4 95 10
5 96 0
6 97 0
7 98 13