首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Pandas dataframe中删除行的列表?

如何从Pandas dataframe中删除行的列表?
EN

Stack Overflow用户
提问于 2013-02-02 20:03:46
回答 10查看 636.8K关注 0票数 317

我有一个数据帧df:

代码语言:javascript
复制
>>> df
                  sales  discount  net_sales    cogs
STK_ID RPT_Date                                     
600141 20060331   2.709       NaN      2.709   2.245
       20060630   6.590       NaN      6.590   5.291
       20060930  10.103       NaN     10.103   7.981
       20061231  15.915       NaN     15.915  12.686
       20070331   3.196       NaN      3.196   2.710
       20070630   7.907       NaN      7.907   6.459

然后我想删除在列表中指示的具有特定序列号的行,假设这里是[1,2,4],,然后是left:

代码语言:javascript
复制
                  sales  discount  net_sales    cogs
STK_ID RPT_Date                                     
600141 20060331   2.709       NaN      2.709   2.245
       20061231  15.915       NaN     15.915  12.686
       20070630   7.907       NaN      7.907   6.459

如何或什么函数可以做到这一点?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-02-02 20:11:11

使用DataFrame.drop并向其传递一系列索引标签:

代码语言:javascript
复制
In [65]: df
Out[65]: 
       one  two
one      1    4
two      2    3
three    3    2
four     4    1


In [66]: df.drop(df.index[[1,3]])
Out[66]: 
       one  two
one      1    4
three    3    2
票数 465
EN

Stack Overflow用户

发布于 2016-01-05 22:28:26

请注意,当您想要插入行时,使用"inplace“命令可能很重要。

代码语言:javascript
复制
df.drop(df.index[[1,3]], inplace=True)

因为您的原始问题没有返回任何内容,所以应该使用此命令。http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.drop.html

票数 142
EN

Stack Overflow用户

发布于 2017-04-15 09:57:42

如果DataFrame很大,而且要删除的行数也很大,那么简单的drop by index df.drop(df.index[])就会花费太多时间。

在我的例子中,我使用100M rows x 3 cols创建了一个浮点数的多索引DataFrame,并且我需要从其中删除10k行。我发现的最快的方法是,与直觉相反的是,对其余的行执行take

假设indexes_to_drop是要删除的位置索引的数组(在问题中为[1, 2, 4])。

代码语言:javascript
复制
indexes_to_keep = set(range(df.shape[0])) - set(indexes_to_drop)
df_sliced = df.take(list(indexes_to_keep))

在我的例子中,这占用了20.5s,而简单的df.drop占用了5min 27s并消耗了大量内存。生成的DataFrame是相同的。

票数 68
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14661701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档