2016-03-27 19 views
1

Ich bin neu in Pandas und eine harte Zeit, herauszufinden, wie die folgendenPandas Filter und kombinieren

data = pd.read_csv('data.csv', sep=';', header=0, names=['a1', 'a2', 'b1', 'b2', 'c1', 'c2']) 

Alle Werte ganze Zahlen zu tun, sind

Ich brauche Reihen heraus zu filtern, wo ‚a1‘ , 'b1', 'c1' sind weniger als 5 dann einen neuen Datenrahmen mit 'a', 'b', 'c' nur produzieren, wo

a[i] = a2[i]/a1[i] 
c[i] = b2[i]/b1[i] 
d[i] = c2[i]/c1[i] 

Antwort

2

zu filtern, können Sie verwenden:

data = data[(data.a1 < 5) & (data.b1 < 5) & (data.c1 < 5)] 

Dann können Sie einen Datenrahmen mit neuen Spalten erstellen:

pd.DataFrame({ 
    'a': data.a2/data.a1, 
    'c': data.b2/data.b1, 
    'd': data.c2/data.c1}) 

(Beachten Sie, dass in der vorhergehenden, aber Sie könnten

'a': data.a2.astype(float)/data.a1, 

(und so weiter betrachten verwenden), als ganze Zahl Abteilung könnte nicht sein, was Sie wollen.)

+0

Oh Junge, je mehr ich über Pandas lernen desto mehr bin ich erstaunt –

+0

Es ist in der Tat eine sehr gut gestaltete Bibliothek. –

Verwandte Themen