Pandas DataFrame:如何删除所有列和行的和为0

您所在的位置:网站首页 python删除全为0的行 Pandas DataFrame:如何删除所有列和行的和为0

Pandas DataFrame:如何删除所有列和行的和为0

2023-11-26 10:04| 来源: 网络整理| 查看: 265

Pandas DataFrame:如何删除所有列和行的和为0

在本文中,我们将介绍如何使用Pandas DataFrame删除所有列和行的和为0。如果您正在处理一个数据集,它包含许多列和行,而您只对非0值感兴趣,那么此任务就会变得更加重要。

假设我们有以下示例DataFrame:

import pandas as pd data = {'A': [1, 2, 3, 0], 'B': [0, 0, 0, 0], 'C': [4, 0, 1, -7], 'D': [0, 0, 0, 0]} df = pd.DataFrame(data) print(df)

输出结果为:

A B C D 0 1 0 4 0 1 2 0 0 0 2 3 0 1 0 3 0 0 -7 0

阅读更多:Pandas 教程

删除和为0的列

要删除和为0的列,我们需要使用DataFrame的loc[]方法和sum()方法。以下是实现方法:

df = df.loc[:, (df != 0).any(axis=0)] print(df)

在上面的代码中,我们使用了loc[]方法和sum()方法,其中:

loc[]方法用于选择所有行和包含任何非0值的列; sum()方法返回该DataFrame每列的和; any(axis=0)参数用于指定将计算任何列轴上的任何非0值的逻辑值。

输出结果为:

A C 0 1 4 1 2 0 2 3 1 3 0 -7

我们可以看到,只有包含非0值的列’A’和’C’被保留下来了。

删除和为0的行

要删除和为0的行,我们需要使用DataFrame的loc[]方法和sum()方法。以下是实现方法:

df = df.loc[(df != 0).any(axis=1), :] print(df)

在上面的代码中,我们使用了loc[]方法和sum()方法,其中:

loc[]方法用于选择所有包含非0值的行和所有列; sum()方法返回该DataFrame每行的和; any(axis=1)参数用于指定将计算任何行轴上的任何非0值的逻辑值。

输出结果为:

A B C D 0 1 0 4 0 1 2 0 0 0 2 3 0 1 0 3 0 0 -7 0

我们可以看到,只有包含非0值的行被保留下来了。

总结

在本文中,我们介绍了如何使用Pandas DataFrame在Python中删除和为0的列和行。我们使用loc[]方法,sum()方法和any()方法来解决这个问题。如果您熟悉这些方法,那么删除和为0的列和行将变得非常简单。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3