Una forma de lograr esto es
>>> pd.DataFrame(np.array([[2, 3, 4]]), columns=['A', 'B', 'C']).append(df, ignore_index=True)
Out[330]:
A B C
0 2 3 4
1 5 6 7
2 7 8 9
Generalmente, es más fácil agregar marcos de datos, no series. En su caso, dado que desea que la nueva fila esté "en la parte superior" (con la identificación inicial), y no hay ninguna función pd.prepend()
, primero creo el nuevo marco de datos y luego agrego el anterior.
ignore_index
ignorará el antiguo índice en curso en su marco de datos y se asegurará de que la primera fila realmente comience con index en 1
lugar de reiniciar con index 0
.
Descargo de responsabilidad típico: Cetero censeo ... agregar filas es una operación bastante ineficiente. Si le preocupa el rendimiento y de alguna manera puede asegurarse de crear primero un marco de datos con el índice correcto (más largo) y luego simplemente insertar la fila adicional en el marco de datos, definitivamente debería hacerlo. Ver:
>>> index = np.array([0, 1, 2])
>>> df2 = pd.DataFrame(columns=['A', 'B', 'C'], index=index)
>>> df2.loc[0:1] = [list(s1), list(s2)]
>>> df2
Out[336]:
A B C
0 5 6 7
1 7 8 9
2 NaN NaN NaN
>>> df2 = pd.DataFrame(columns=['A', 'B', 'C'], index=index)
>>> df2.loc[1:] = [list(s1), list(s2)]
Hasta ahora, tenemos lo que tenías como df
:
>>> df2
Out[339]:
A B C
0 NaN NaN NaN
1 5 6 7
2 7 8 9
Pero ahora puede insertar fácilmente la fila de la siguiente manera. Dado que el espacio fue preasignado, esto es más eficiente.
>>> df2.loc[0] = np.array([2, 3, 4])
>>> df2
Out[341]:
A B C
0 2 3 4
1 5 6 7
2 7 8 9
s1.values
en lugar de,list(s1)
ya que creará una lista completamente nueva usandolist(s1)
.