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

pandas读取csv生成dataframe时如何过滤全NaN的多余行与列

解决方案

方法1:读取时直接指定有效行列范围(已知有效行列数时最优)

你已经明确有73行16列有效数据,可直接通过read_csv的参数限定读取范围:

# 若有效数据从第1行(表头行)开始,前16列、前73行是有效内容
data_dataframe = pd.read_csv(
    csv_file,
    sep=',',
    nrows=73,  # 仅读取前73行有效数据
    usecols=range(16)  # 仅读取前16列有效数据
)

如果有效数据不是从文件第一行开始,可补充skiprows=N参数,N为需要跳过的头部无效行数。

方法2:读取后清洗全空行列(未知有效行列数时使用)

如果无法提前确定有效行列的数量,可先读取全量数据,再批量删除全为NaN的行和列:

# 先读取全量数据
data_dataframe = pd.read_csv(csv_file, sep=',')
# 先删除所有全为空值的列,再删除所有全为空值的行
data_dataframe = data_dataframe.dropna(axis=1, how='all').dropna(axis=0, how='all')

参数说明:

  • axis=1表示按列操作,axis=0表示按行操作
  • how='all'表示仅当整行/整列所有值都为NaN时才删除,不会误删包含有效数据的行列

额外适配场景

如果csv文件是导出时带了多余的末尾分隔符、空行带空格等特殊情况,可补充以下参数优化读取逻辑:

  • 加skip_blank_lines=True:自动跳过完全空白的行
  • 加on_bad_lines='skip':自动跳过格式异常、列数不对的错误行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:24:03