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

升级至pandas 2.1.0后出现两类FutureWarning,如何消除?

解决pandas 2.1.0升级后的两个FutureWarning

1. DataFrame拼接时的空/全NA列警告

该警告提示:拼接包含空或全NA列的DataFrame时,未来版本的dtype推断逻辑会发生变化。消除方法如下:

  • 推荐方式:提前过滤空/全NA列
    在执行pd.concat前,对每个待拼接的DataFrame移除全为NA或列名空的列:

    def filter_invalid_cols(df):
        # 保留非全NA且列名非空的列
        valid_cols = ~(df.isna().all() | (df.columns.str.strip() == ""))
        return df.loc[:, valid_cols]
    
    # 过滤所有待拼接的DataFrame
    dfs_cleaned = [filter_invalid_cols(df) for df in dfs]
    df = pd.concat(dfs_cleaned)
    
  • 临时保留旧行为(不推荐,未来版本会失效)
    通过设置pandas选项沿用旧的拼接逻辑:

    pd.set_option('future.no_silent_downcasting', False)
    df = pd.concat(dfs)
    

2. pyarrow的is_sparse方法弃用警告

该警告源于pyarrow旧版本与pandas 2.1.0的API不兼容,解决方法如下:

  • 推荐方式:升级pyarrow到兼容版本
    执行以下命令升级pyarrow(建议升级到13.0.0及以上版本):

    pip install --upgrade pyarrow
    
  • 临时屏蔽警告(无法升级时使用)
    使用warnings模块过滤特定警告:

    import warnings
    warnings.filterwarnings(
        "ignore",
        category=FutureWarning,
        message=r"is_sparse is deprecated and will be removed in a future version\..*"
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:03:12