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

Pandas DataFrame同索引场景下删除含NaN无效行的实现方法

删除Pandas DataFrame中含NaN的无效行方案

拼接多个DataFrame产生的带NaN空行,直接用Pandas内置的缺失值删除方法即可实现需求,两种实现方式如下:

方式1:生成全新的清洗后DataFrame(不改动原始拼接数据)

使用dropna()方法检测并删除存在NaN值的行,赋值给新变量即可:

# 假设你拼接完成的原始DataFrame变量名为combined_df
cleaned_df = combined_df.dropna(axis=0, how="any")

参数说明:

  • axis=0:指定按行维度做缺失值检测
  • how="any":只要当前行存在任意一个NaN值,就删除该行,刚好匹配拼接错位产生的无效行

如果你的有效数据行允许部分列存在NaN,为了避免误删,可以指定只根据关键非空列做检测,比如第一列为币种名称列(假设列名为asset),可以改写为:

cleaned_df = combined_df.dropna(subset=["asset"], axis=0)

方式2:直接在原始DataFrame上修改

添加inplace=True参数即可在原对象上直接生效,不需要赋值新变量:

combined_df.dropna(axis=0, how="any", inplace=True)
# 如果删除空行后索引不连续,执行下面代码重置索引,得到从0开始的连续行号
combined_df.reset_index(drop=True, inplace=True)

提示:你给出的期望输出中行索引为连续的0、1,如果删完空行发现行号跳变,执行上述reset_index代码即可对齐格式,其中drop=True参数会丢弃原有的旧索引,避免旧索引被存为新的一列。

执行完上述操作后,打印DataFrame即可得到你预期的结果:

0  Bitcoin (BTC)  36568.673315  571130.59220   1.229602e+06
1  Ethereum (ETH) 2550.870272   670225.756425  8.806719e+05

补充:后续做多DataFrame行拼接时,可以提前检查三个源DataFrame的列名、列顺序是否完全一致,能从源头避免拼接错位产生NaN空行的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:55:14