如何在 Pandas 中删除行2025年1月11日 | 阅读 6 分钟 使用 pandas.DataFrame.drop(),我们可以从给定的 DataFrame 中删除、移除或消除我们想要的行。我们可以使用 DataFrame.axis 参数选择要删除的轴。 默认情况下,Axis = 0 表示消除行。 要消除列,请应用 axis = 1 或 columns_param。 删除行时,Pandas 默认创建 DataFrame 的副本;要从现有引用 DataFrame 中删除,请使用 inplace = True 选项。 语法 参数
返回类型:更新后的 DataFrame 使用行索引标签删除单行pandas 的一个优点是提供与列名类似的行标签或标题。如果我们的数据框支持行标签(也称为索引标签),我们可以使用行标签名称指定要删除的单个行。 代码 输出 Original DataFrame: Name Age Salary (LPA) A Itika 21 32 B Peter 26 20 C Harry 28 38 D Naill 25 17 New DataFrame: Name Age Salary (LPA) A Itika 21 32 C Harry 28 38 D Naill 25 17 使用索引标签删除多行我们可以在列表中提供多个行索引标签给 drop 命令,以从 DataFrame 中删除多行。 代码 输出 Original DataFrame: Name Age Salary (LPA) A Itika 21 32 B Peter 26 20 C Harry 28 38 D Naill 25 17 New DataFrame: Name Age Salary (LPA) A Itika 21 32 D Naill 25 17 按索引号删除行同样,我们可以通过将索引位置作为参数提供给 drop() 方法来从给定的 pandas DataFrame 中删除行。我们必须使用索引提取行名,并将它们传递给 drop() 方法,因为它不接受行位置索引作为参数。为了获得要删除的索引的 DataFrame 的行标签,我们将使用 df.index。 使用 df.index.values 函数将所有行标签作为列表返回。 例如,使用 df.index[[1,2]],获取第二行和第三行的行标签; 然后 drop() 方法删除这些行。 请记住,Python 中列表的索引从零开始。 代码 输出 Original DataFrame: Name Age Salary (LPA) A Itika 21 32 B Peter 26 20 C Harry 28 38 D Naill 25 17 New DataFrame: Name Age Salary (LPA) A Itika 21 32 D Naill 25 17 原地删除 DataFrame 的行到目前为止,我们一直得到一个删除了行的新的 DataFrame。 但是,我们可以在不创建一个名为对 DataFrame 执行“就地”操作的情况下删除 DataFrame 的行。 代码 输出 Original DataFrame: Name Age Salary (LPA) A Itika 21 32 B Peter 26 20 C Harry 28 38 D Naill 25 17 Updated DataFrame: Name Age Salary (LPA) A Itika 21 32 D Naill 25 17 使用索引范围删除行通过定义索引范围,我们也可以消除行。 下面的实例删除了第三行之前存在的所有行。 代码 输出 Original DataFrame: Name Age Salary (LPA) A Itika 21 32 B Peter 26 20 C Harry 28 38 D Naill 25 17 Updated DataFrame: Name Age Salary (LPA) D Naill 25 17 通过检查条件删除行通过 loc[] 和 iloc[] 函数,我们可以根据某些条件(列值)轻松删除 DataFrame 行。 代码 输出 Original DataFrame: Name Age Salary (LPA) A Itika 21 32 B Peter 26 20 C Harry 28 38 D Naill 25 17 New DataFrame: Name Age Salary (LPA) A Itika 21 32 删除包含 NaN/None 值的行处理分析时,我们经常需要清理包含 None、Null 和 np.NaN 值的行。 我们可以通过调用 df.dropna() 从给定的 DataFrame 中删除 NaN 值。 代码 输出 Original DataFrame: Name Age Salary (LPA) A Itika 21 32.0 B Peter 26 NaN C Harry 28 38.0 D Naill 25 NaN New DataFrame: Name Age Salary (LPA) A Itika 21 32.0 C Harry 28 38.0 |
我们请求您订阅我们的新闻通讯以获取最新更新。