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

MATLAB代码A(A(:,4)==0,:)=[];对应的Pandas等价写法咨询

解决Pandas过滤行的问题

你写的代码存在两个关键问题:

  • Pandas DataFrame不支持[:,4]这类NumPy数组的索引语法,而且MATLAB是1-based索引规则,Pandas采用0-based索引,所以第4列对应的索引是3
  • Python中表示“不等于”的运算符是!=,而非!==(后者是JavaScript的语法)

要实现过滤掉第4列值为0的行,同时不改动原Excel数据,可以按以下步骤操作:

首先读取Excel数据到DataFrame,原始数据会保留在变量中,不会被修改:

import pandas as pd
# 读取原始Excel数据,该变量始终存储原始内容
original_df = pd.read_excel('你的文件路径.xlsx')

然后通过两种方式生成过滤后的新数据:

  • 按列位置过滤(第4列对应索引3):
# 生成过滤后的新DataFrame,完全不影响原数据
filtered_df = original_df[original_df.iloc[:, 3] != 0]
  • 若已知第4列的列名(比如叫'target_col'),用列名过滤更直观:
filtered_df = original_df[original_df['target_col'] != 0]

filtered_df就是你需要的结果,original_df始终保留从Excel读取的原始数据,也不会对原Excel文件产生任何修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:45:57