/ / Python Pandas agregan filas basadas en valores secuenciales faltantes en una serie temporal: python, pandas, row

Python Pandas agrega filas basadas en valores secuenciales faltantes en una serie temporal: python, pandas, row

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 № 1

Me 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