删除pandas数据框的前三行

我需要删除pandas数据框的前三行。

我知道df.ix[:-1]会删除最后一行,但我不知道如何删除前n行。

像使用ix一样使用iloc ,但应用不同的切片…

 df2 = df1.iloc[3:] #edited since .ix is now deprecated. 

会给你一个没有前三行的新的DF。

我认为更明确的做法是使用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) 

您可以使用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 
 df=df.iloc[n:] 

n是第n行

 df.drop(df.index[[0,2]]) 

pandas使用基于零的编号,所以0是第一行,1是第二行,2是第三行。