如何用 Pandas 去除全为 0 的列

使用 Pandas 库可以快速高效地去除数据框中所有值为 0 的列。本文介绍使用 any() 方法结合布尔索引的技巧,帮助您轻松整理数据。

代码示例:

import pandas as pd

# 创建测试数据
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [0, 0, 0, 0], 'C': [0, 4, 0, 1], 'D': [0, 0, 0, 0]})
print(df)

# 去除全为0的列
df = df.loc[:, (df != 0).any(axis=0)]
print(df)

输出结果:

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

   A  C
0  1  0
1  2  4
2  3  0
3  4  1

解释:

  • (df != 0).any(axis=0):首先使用 df != 0 创建一个布尔型 DataFrame,其中每个元素表示对应位置的值是否不为 0。然后使用 any(axis=0) 按列计算,如果该列中有任意一个元素不为 0,则返回 True,否则返回 False。
  • df.loc[:, (df != 0).any(axis=0)]:使用布尔索引选择所有返回 True 的列,即去除了全为 0 的列。

通过以上方法,您可以轻松地去除 Pandas 数据框中所有值为 0 的列,从而简化数据分析和处理过程。

Pandas 数据处理:快速去除全为0的列

原文地址: https://www.cveoy.top/t/topic/mC04 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录