使用 .index 删除 pandas 中的行
Posted
技术标签:
【中文标题】使用 .index 删除 pandas 中的行【英文标题】:Dropping rows in pandas with .index 【发布时间】:2018-12-01 03:48:37 【问题描述】:我遇到了下面的代码行,当'.index'不存在时会出错。
print(df.drop(df[df['Quantity'] == 0].index).rename(columns='Weight': 'Weight (oz.)'))
在 pandas 中使用 drop 时,'.index' 的目的是什么?
【问题讨论】:
【参考方案1】:如documentation 中所述,您可以将drop
与index
一起使用:
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
df.drop([0, 1]) # Here 0 and 1 are the index of the rows
输出:
A B C D
2 8 9 10 11
在这种情况下,它将删除前 2 行。
在您的示例中使用.index
,您可以找到Quantity=0
所在的行并检索它们的索引(然后在文档中使用like)
【讨论】:
【参考方案2】:这是.drop()
方法的详细信息:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop.html
.drop()
方法需要一个参数'label',它是一个索引标签列表(当axis=0
,这是默认情况)或列标签(当axis=1
)。
df[df['Quantity'] == 0]
返回了Quantity=0
所在的DataFrame,但我们需要的是Quantity=0
所在的索引标签,所以需要.index。
【讨论】:
以上是关于使用 .index 删除 pandas 中的行的主要内容,如果未能解决你的问题,请参考以下文章
pandas删除数据行中的重复数据行基于dataframe所有列删除重复行基于特定数据列或者列的作何删除重复行删除重复行并保留重复行中的最后一行pandas删除所有重复行(不进行数据保留)
pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行并设置keep参数保留重复行中的最后一个数据行