Skip to main content
 首页 » 编程设计

python之如何使用python删除excel中的所有零值

2025年05月04日10kerrycode

我想删除 excel/csv 文件中所有包含零的单元格。它不应该像列一样。因为如果我保留所有零,它会反射(reflect)在我的数据透视表中。所以,我必须删除所有包含零的单元格。

下面是我输入的excel:

S.No    Name    Module     Val1         Val2    Val3    Val4    Total 
1      Name1    Module1    0.0004      1.874    0.9 0    0      2.7744 
2      Name2    Module2    0.998       1.08     0.54     0.643  3.261 
3      Name3    Module3    0           0        0        0.292  0.292 
4      Name4    Module4    0.52    0        0.18     0      0.7 
5      Name5    Module5    0           0        0.295    0      0.295 
6      Name6    Module6    0           0.98     0        1.51   2.49 
7      Name7    Module7    2.0876      0        0.8976   0      2.9852 
8      Name8    Module8    0           1.0003   0        1.035  2.0353 
9      Name9    Module9    0           0        0        2.09   2.09 
10     Name10   Module10   0.52 0      0.18     0        0      0.7 
11     Name11   Module11   0           1.874    0        0      1.874 
12     Name12   Module12   0.292    0.998       0        0.2091 1.4991 

预期输出:

删除所有零单元格值。

S.No    Name    Module  Val1    Val2    Val3    Val4    Total 
1       Name1   Module1 0.0004  1.874   0.9             2.7744 
2       Name2   Module2 0.998   1.08    0.54    0.643   3.261 
3       Name3   Module3                         0.292   0.292 
4       Name4   Module4 0.52            0.18            0.7 
5       Name5   Module5                 0.295           0.295 
6       Name6   Module6 0       0.98            1.51    2.49 
7       Name7   Module7 2.0876          0.8976          2.9852 
8       Name8   Module8         1.0003          1.035   2.0353 
9       Name9   Module9                 2.09            2.09 
10      Name10  Module10 0.52   0.18                    0.7 
11      Name11  Module11 0      1.874                   1.874 
12      Name12  Module12 0.292  0.998           0.2091  1.4991 

请您参考如下方法:

这是可能的,但得到的是混合值 - 带有空字符串的数字,所以数字操作失败:

df = df.replace(0, '') 

最好用缺失值替换 - 所有值都是数字,因为 NaN 是浮点值:

df = df.replace(0, np.nan)