2015-12-18 1 views
1

(je suis nouveau à python, désolé pour toutes les erreurs que je fais, je l'espère, vous pouvez me comprendre)Insérer une ligne en Python Pandas dataframe

J'ai cherché une méthode pour insérer une ligne dans un Pandas dataframe dans Python, et je l'ai trouvé ceci:

add one row in a pandas.DataFrame

J'utiliser le code fourni dans la réponse acceptée de ce sujet par fred, mais le code Ecrasement de ma ligne: mon code (insère une ligne avec des valeurs " -1 "pour chaque colonne dans certaines conditions):

df.loc[i+1] = [-1 for n in range(len(df.columns))] 

Comment puis-je faire en sorte que le code insère une ligne SANS le surcharger? Par exemple, si j'ai un DataFrame de 50 lignes, insérez une ligne à la position 25 (Juste comme un exemple), et faites que le DataFrame ait 51 lignes (étant le 25 une ligne supplémentaire).

J'espère que vous pouvez comprendre ma question. (Désolé pour les erreurs en anglais)

Merci.

MISE À JOUR:

Quelqu'un a suggéré ceci:

Is it possible to insert a row at an arbitrary position in a dataframe using pandas?

Essayé, ne fonctionnait pas. En fait, il ne fait rien, n'ajoute aucune ligne.

line = pd.DataFrame({[-1 for n in range(len(df.columns))]}, index=[i+1]) 
df = pd.concat([ df.ix[:i], line, df.ix[i+1:]]).reset_index(drop=True) 

Autres idées?

+1

double possible de ([Est-il possible d'insérer une ligne à une position arbitraire dans une trame de données à l'aide Pandas?] http://stackoverflow.com/questions/15888648/is-it-possible-to-insert-a-row-at-an-arbitrary-position-in-a-dataframe-using-pan) – Lafexlos

+0

Pouvez-vous ajouter [Minimal , Complet et exemple vérifiable] (http://stackoverflow.com/help/mcve)? – jezrael

Répondre

2

Avec un petit DataFrame, si vous voulez insérer une ligne, à la position 1:

df = pd.DataFrame({'a':[0,1],'b':[2,3]}) 

df1 = pd.DataFrame([4,5]).T 

pd.concat([df[:1], df1.rename(columns=dict(zip(df1.columns,df.columns))), df[1:]]) 

#Out[46]: 
# a b 
#0 0 2 
#0 4 5 
#1 1 3