Une façon d'y parvenir est
>>> 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
En général, il est plus facile d'ajouter des dataframes, pas des séries. Dans votre cas, puisque vous voulez que la nouvelle ligne soit "en haut" (avec l'identifiant de départ), et qu'il n'y a pas de fonction pd.prepend()
, je crée d'abord la nouvelle dataframe, puis j'ajoute l'ancienne.
ignore_index
ignorera l'ancien index en cours dans votre dataframe et s'assurera que la première ligne commence réellement par index 1
au lieu de redémarrer avec index 0
.
Avertissement typique: Cetero censeo ... l'ajout de lignes est une opération assez inefficace. Si vous vous souciez des performances et que vous pouvez en quelque sorte vous assurer de créer d'abord un dataframe avec l'index correct (plus long), puis d' insérer simplement la ligne supplémentaire dans le dataframe, vous devez absolument le faire. Voir:
>>> 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)]
Jusqu'à présent, nous avons ce que vous aviez comme df
:
>>> df2
Out[339]:
A B C
0 NaN NaN NaN
1 5 6 7
2 7 8 9
Mais maintenant, vous pouvez facilement insérer la ligne comme suit. Puisque l'espace a été préalloué, c'est plus efficace.
>>> 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
plutôtlist(s1)
que de créer une liste entièrement nouvelle en utilisantlist(s1)
.