2016-12-01 9 views
0

Ich bin neu mit Pandas. Ich habe einen Datenrahmen, die in 6 Spalten besteht, und ich möchte eine for-Schleife machen, tut dies:Pandas, Subtraktion Spalten Datenframe in Schleife

-create eine neue Spalte (nc 1) -nc1 = Spalte 1 - Spalte 2

und I wollen, dass diese für alle Spalten zu durchlaufen, so würde der letzte sein: ncx = Spalte 5- Spalte 6

ich kann Spalten wie folgt subtrahieren:

df['nc'] = df.Column1 - df.Column2 

aber dies ist nicht sinnvoll, wenn ich versuche, mach eine Schleife, da ich immer t einfügen muss er Namen von Spalten.

Kann mir jemand helfen, indem er mir sagt, wie kann ich Spalten als Zahlen bezeichnen? Vielen Dank!

+0

Entschuldigung, fragen Sie nach 'df.diff (axis = 1)'? – EdChum

+0

Hallo, das war wirklich hilfreich. – Vasil

Antwort

0
In [26]: import numpy as np 
    ...: import random 
    ...: import pandas as pd 
    ...: 
    ...: A = pd.DataFrame(np.random.randint(100, size=(5, 6))) 

In [27]: A 
Out[27]: 
    0 1 2 3 4 5 
0 82 13 17 58 68 67 
1 81 45 15 11 20 63 
2 0 84 34 60 90 34 
3 59 28 46 96 86 53 
4 45 74 14 10 5 12 

In [28]: for i in range(0, 5): 
    ...:  A[(i + 6)] = A[i] - A[(i + 1)] 
    ...: 
    ...: 
    ...: A 
    ...: 
Out[28]: 
    0 1 2 3 4 5 6 7 8 9 10 
0 82 13 17 58 68 67 69 -4 -41 -10 1 
1 81 45 15 11 20 63 36 30 4 -9 -43 
2 0 84 34 60 90 34 -84 50 -26 -30 56 
3 59 28 46 96 86 53 31 -18 -50 10 33 
4 45 74 14 10 5 12 -29 60 4 5 -7 

In [29]: nc = 1 #The first new column 
    ...: A[(nc + 5)] #outputs the first new column 
Out[29]: 
0 69 
1 36 
2 -84 
3 31 
4 -29 

Hier brauchen Sie nicht es beim Namen zu nennen, nur durch die Spaltennummer, und Sie können nur eine einfache Funktion schreiben, die die Spalte nennt + 5

Etwas wie folgt aus:

In [31]: def call_new_column(n): 
    ...:  return(A[(n + 5)]) 
    ...: 
    ...: 
    ...: call_new_column(2) 
Out[31]: 
0 -4 
1 30 
2 50 
3 -18 
4 60 
+0

Hallo, Vielen Dank für Ihre Hilfe, aber ich frage mich, ob es eine Möglichkeit gab, es zu tun, wenn Ihre Spalten keine Nummer als Name haben, wie zum Beispiel wenn Sie Daten von jemand anderem manipulieren müssen und er nicht benannt hat die Spalten mit Zahlen. – Vasil

Verwandte Themen