Entfernt das nicht die ersten 4 Zeilen anstelle der ersten 3 Zeilen in der ursprünglichen Frage?
Tagoma
6
Nein, das tut es nicht. Die Startposition des Slice ist immer enthalten.
Bdiamante
Weiß jemand zufällig, wie man das in einem macht groupby()? Dies funktioniert, gibt aber doppelte Spalten im Index zurückdf=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
citynorman
Wenn Sie beispielsweise von Zeile 3 bis Zeile 9 löschen möchten, wie würden Sie dies tun? df=df.iloc[3:9]?
MK
1
@MK Wenn Sie diesen Ansatz verwenden, können Sie dies in Kombination mit verwenden pd.concat(). So etwas wie , df2 = pd.concat([df.iloc[:3],df.iloc[10:]]).
Bdiamante
100
Ich denke, ein expliziterer Weg, dies zu tun, ist die Verwendung von drop.
Die Syntax lautet:
df.drop(label)
Und wie von @tim und @ChaimG hervorgehoben, kann dies vor Ort erfolgen:
@ Tim, nach dieser , inplaceOperationen sind nicht schneller. Einfacher ist auch Ansichtssache: Ich finde es einfacher zu lesen, wenn der Code keine inplaceParameter hat.
header=3
Konstruktorargument verwenden, das diese Zeile als Kopfzeile festlegtAntworten:
Verwendung
iloc
:gibt dir einen neuen df ohne die ersten drei zeilen.
quelle
groupby()
? Dies funktioniert, gibt aber doppelte Spalten im Index zurückdf=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
df=df.iloc[3:9]
?pd.concat()
. So etwas wie ,df2 = pd.concat([df.iloc[:3],df.iloc[10:]])
.Ich denke, ein expliziterer Weg, dies zu tun, ist die Verwendung von drop.
Die Syntax lautet:
Und wie von @tim und @ChaimG hervorgehoben, kann dies vor Ort erfolgen:
Eine Möglichkeit, dies umzusetzen, könnte sein:
Und noch eine "an Ort und Stelle" Verwendung:
quelle
drop
kann sogar vor Ort berechnet werden (ohne zusätzliche Zuordnung). Schneller und einfacher!df.drop(label, inplace=True)
inplace
Operationen sind nicht schneller. Einfacher ist auch Ansichtssache: Ich finde es einfacher zu lesen, wenn der Code keineinplace
Parameter hat.n löscht die ersten n Zeilen.
quelle
Sie können Python-Slicing verwenden, beachten Sie jedoch, dass es nicht vorhanden ist.
quelle
pandas
?Pandas verwendet eine auf Null basierende Nummerierung, also ist 0 die erste Zeile, 1 die zweite Zeile und 2 die dritte Zeile.
quelle
Eine einfache Möglichkeit besteht darin, mit tail (-n) die ersten n Zeilen zu entfernen
df=df.tail(-3)
quelle
inp0 = pd.read_csv ("bank_marketing_updated_v1.csv", skiprows = 2)
oder wenn Sie in vorhandenen Datenrahmen tun möchten
Führen Sie einfach den folgenden Befehl aus
quelle