删除熊猫数据框的前三行

Posted

技术标签:

【中文标题】删除熊猫数据框的前三行【英文标题】:Delete the first three rows of a dataframe in pandas 【发布时间】:2013-04-30 02:23:33 【问题描述】:

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

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

【问题讨论】:

对于 read_csv/read_html 你可以使用例如header=3 构造函数参数,它将将该行设置为标题行:***.com/a/51822697/191246 【参考方案1】:

使用iloc:

df = df.iloc[3:]

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

【讨论】:

这不是删除原始问题中的前 4 行而不是前 3 行吗? 不,它没有。始终包含切片的起始位置。 有人碰巧知道如何在groupby() 中执行此操作吗?这有效,但返回索引中的重复列 df=pd.DataFrame('v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10);df.groupby('g').apply(lambda x: x.iloc[3:]) 那么例如,如果你想从第 3 行删除到第 9 行,你会怎么做呢? df=df.iloc[3:9]? @M.K 如果使用此方法,您可以将其与pd.concat() 结合使用。比如df2 = pd.concat([df.iloc[:3],df.iloc[10:]])【参考方案2】:

您可以使用 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

【讨论】:

pandas 中没有就地意味着什么? 他们在谈论在 pandas 的许多方法中出现的 inplace 参数。【参考方案3】:

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

【讨论】:

drop 甚至可以就地计算(无需额外分配)。更快更简单! 扩展蒂姆的想法,例如:df.drop(label, inplace=True) 由于索引为0,相信实施建议会删除4行。 @DanielMorgan 情况并非如此,因为 python 范围是半开的。至于为什么会这样,是另一个问题。见***.com/questions/4504662/… 或quora.com/… @tim,根据this,inplace 操作并不快。另外,更简单是见仁见智的问题:当代码没有inplace 参数时,我发现它更容易阅读。【参考方案4】:
df = df.iloc[n:]

n 删除前 n 行。

【讨论】:

【参考方案5】:
df.drop(df.index[[0,2]])

Pandas 使用从零开始的编号,因此 0 是第一行,1 是第二行,2 是第三行。

【讨论】:

【参考方案6】:

一个简单的方法是使用tail(-n)来删除前n行

df=df.tail(-3)

【讨论】:

【参考方案7】:

inp0= pd.read_csv("bank_marketing_updated_v1.csv",skiprows=2)

或者如果你想在现有的数据框中做

只需执行以下命令

【讨论】:

【参考方案8】:

有一种简单的方法可以通过drop 命令来实现。

df = df.drop(3)

【讨论】:

嗨,阿曼。为清楚起见,请将代码示例包装在代码块中 (see guidelines)。它还有助于参考文档页面以帮助提问者理解该方法。

以上是关于删除熊猫数据框的前三行的主要内容,如果未能解决你的问题,请参考以下文章

根据条件保留熊猫数据框的上 n 行

两个熊猫数据框的联合

删除熊猫中的标点符号[重复]

熊猫在样式中删除行应用功能

合并熊猫数据框的列时出错

带有熊猫数据框的子图