首页  >  文章  >  后端开发  >  如何根据索引或条件从 Pandas 数据框中删除行?

如何根据索引或条件从 Pandas 数据框中删除行?

Linda Hamilton
Linda Hamilton原创
2024-11-03 10:50:29787浏览

How to Drop Rows from a Pandas Dataframe Based on Index or Conditions?

从 Pandas Dataframe 中删除行

在 Pandas 中,我们经常遇到需要从 DataFrame 中删除某些行的情况,或者用于数据清理目的或专注于特定子集。实现此目的的一种有效方法是利用 drop 函数,它允许我们根据各种条件有选择地删除行。

为了演示该过程,让我们考虑一个数据帧 df:

<code class="python">import pandas as pd

df = pd.DataFrame({'sales': [2.709, 6.590, 10.103, 15.915, 3.196, 7.907],
                   'discount': [None, None, None, None, None, None],
                   'net_sales': [2.709, 6.590, 10.103, 15.915, 3.196, 7.907],
                   'cogs': [2.245, 5.291, 7.981, 12.686, 2.710, 6.459]})

print(df)
</code>

现在,假设我们要删除具有某些序列号的行,用列表表示,例如 [1, 2, 4]。为此,我们可以使用 drop 函数,如下所示:

  1. 创建一系列要删除的索引标签:
<code class="python">indices_to_drop = [1, 2, 4]</code>
  1. 或者,您还可以根据列条件删除行:
<code class="python">conditions_to_drop = df['sales'] > 10
df = df[~conditions_to_drop]</code>

通过在 drop 中指定索引参数,我们可以有效地删除与提供的索引对应的行,留下所需的子集:

<code class="python">df = df.drop(index=indices_to_drop)
print(df)</code>

在这种情况下,它将产生以下数据框:

                  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

以上是如何根据索引或条件从 Pandas 数据框中删除行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn