You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除DataFrame中包含至少一个零值的行?

移除DataFrame中含至少一个零值行的实现方法

原始DataFrame

Param1                 Param2    datetime
ts                                                                            
1669246574000               6.06                  -1.80  22-24-11 01:36:14 UTC
1669242973000               6.50                  -1.73  22-24-11 00:36:13 UTC
...                          ...                    ...                    ...
1668918964000               6.00                   0.00  22-20-11 06:36:04 UTC
1668915364000               0.00                   1.6   22-20-11 05:36:04 UTC

移除零值后的结果

Param1                 Param2    datetime
ts                                                                            
1669246574000               6.06                  -1.80  22-24-11 01:36:14 UTC
1669242973000               6.50                  -1.73  22-24-11 00:36:13 UTC

实现方法

利用pandas的布尔索引结合all()方法即可完成筛选:

方法1:指定数值列筛选

针对Param1和Param2两个数值列,筛选出两行都不为0的记录:

# 假设你的DataFrame名为df
filtered_df = df[(df[['Param1', 'Param2']] != 0).all(axis=1)]

方法2:排除非数值列后筛选

如果后续会新增数值列,可排除datetime这类非数值列,检查其余所有列是否无零值:

filtered_df = df[(df.drop('datetime', axis=1) != 0).all(axis=1)]

原理说明:

  • df[指定列] != 0 生成布尔DataFrame,标记每个位置是否不等于0;
  • .all(axis=1) 验证每行的所有元素是否都为True(即该行无零值);
  • 最终通过布尔索引提取符合条件的行。

内容的提问来源于stack exchange,提问作者devaskim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:31:03