我需要删除pandas中数据帧的前三行。
我知道df.ix[:-1]
会删除最后一行,但我无法弄清楚如何删除前n行。
答案 0 :(得分:156)
答案 1 :(得分:88)
我认为更明确的方法是使用drop。
语法为:
df.drop(label)
正如@tim和@ChaimG指出的那样,这可以就地完成:
df.drop(label, inplace=True)
实现这一目标的一种方法可能是:
df.drop(df.index[:3], inplace=True)
另一个“就地”使用:
df.drop(df.head(3).index, inplace=True)
答案 2 :(得分:4)
您可以使用python切片,但请注意它不是就地。
In [15]: import pandas as pd
In [16]: import numpy as np
In [17]: df = pd.DataFrame(np.random.random((5,2)))
In [18]: df
Out[18]:
0 1
0 0.294077 0.229471
1 0.949007 0.790340
2 0.039961 0.720277
3 0.401468 0.803777
4 0.539951 0.763267
In [19]: df[3:]
Out[19]:
0 1
3 0.401468 0.803777
4 0.539951 0.763267
答案 3 :(得分:4)
df = df.iloc[n:]
n删除前n行。
答案 4 :(得分:4)
df.drop(df.index[[0,2]])
Pandas使用从零开始的编号,因此0是第一行,1是第二行,2是第三行。
答案 5 :(得分:2)
一种简单的方法是使用tail(-n)删除前n行
df=df.tail(-3)
答案 6 :(得分:0)
inp0 = pd.read_csv(“ bank_marketing_updated_v1.csv”,skiprows = 2)
或者如果要在现有数据框中执行
只需执行以下命令