2017-03-12 3 views
1

Ich habe, was ein einfaches Problem zu sein scheint, aber ich kann eine Antwort nicht finden ....Pandas Datenrahmen, extrahieren aufeinanderfolgende Zeilen einer Spalte zu einer Liste

einen Pandas Datenrahmen Unter der Annahme, wie zum Beispiel:

df = pd.DataFrame({"a": [1,2,3,4,5], "b": [4,5,6,7,8]}) 

In Spalte b möchte ich eine Liste mit den Werten n aufeinanderfolgenden Zeilen beginnend x Zeilen aus der letzten Zeile extrahieren.

Unter der Annahme, n=3 und x=1 mochte ich bekommen:

list = [7,6,5] or list = [5, 6, 7] 

Ich kann nicht herausfinden, wie das entsprechende Segment des Datenrahmen zu schneiden, dies zu erreichen.

Irgendwelche Ideen? Vielen Dank! Baka

Antwort

0
your_list = list(df['b'][-x-1:-x-n-1:-1]) 
+0

Brilliant! Danke Dude – Baka

+0

@Baka Sie sind willkommen –

0

ich in Ihrem Fall denken Sie

Vorwärtsrichtung list(df['b'][x:(x+n)]) == >>[5,6,7]

oder

Rückwärtsrichtung list(df['b'][-(x)-1:-(x+n)-1:-1]) ==>[7,6,5]

0

Sie verwenden können kann das einfach tun:

n = -4 
x = -1 
lst = df.b.iloc[n:x].tolist() 
print(lst) 

Ausgang:

[5, 6, 7] 
+0

Das Problem ist, dass Sie nicht die 3 letzten Zeilen mit diesem erhalten können, wenn nötig, können Sie? Ich meine, wenn x = 0? – Baka

+0

@Baka Sie können es tun, indem Sie den Raum leer lassen und nicht 'x' verwenden, so:' df.b.iloc [n:]. Tolist() ' –

Verwandte Themen