首页 > 解决方案 > 如何使用python删除excel中的所有零值

问题描述

我想删除所有在 excel/csv 文件中包含零的单元格。它不应该像一个列明智的。因为如果我保持全零,它就会反映在我的数据透视表中。所以,我必须删除所有包含零的单元格。

以下是我输入的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

标签: pythonpython-3.xpandas

解决方案


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

df = df.replace(0, '')

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

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

推荐阅读