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

如何解决parquet读取与JSON生成的DataFrame比对相等时的索引报错问题

问题原因

报错核心是两个DataFrame的索引类型不一致:

  • 左侧从parquet文件加载的索引是数值类型的RangeIndex
  • 右侧从JSON生成的索引是字符串类型的object索引
    二者字面取值看起来一致但类型不同,因此全等校验不通过。

解决方法

方法1:校验时忽略索引类型校验(最简便)

直接在校验函数中添加check_index_type=False参数,不需要修改原DataFrame:

pd.testing.assert_frame_equal(de_df.head(), pd.DataFrame(expected_de_json), check_index_type=False)

如果连索引取值都不需要校验,还可以追加check_index=False参数。

方法2:统一右侧索引类型为数值型

将右侧DataFrame的索引转为整型,和左侧保持一致后再校验:

right_df = pd.DataFrame(expected_de_json)
right_df.index = right_df.index.astype(int)
pd.testing.assert_frame_equal(de_df.head(), right_df)

方法3:仅校验内容匹配,忽略索引顺序

如果只需要确认列内容完全一致,不需要关心索引的顺序和类型,可以添加check_like=True参数:

pd.testing.assert_frame_equal(de_df.head(), pd.DataFrame(expected_de_json), check_like=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:06:09