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

如何将整数导入为数值字符串并避免科学计数法(Pandas JSON问题)

解决JSON导入的两个问题:过滤指定字典+修复时间列类型与格式

步骤1:先过滤掉不需要的字典

在调用json_normalize之前,先对原始JSON列表做过滤,把你提到的"B"类字典排除。假设这类字典有明确标识(比如type字段值为"B"),处理代码如下:

import pandas as pd
import json

# 加载原始JSON数据
with open("your_data.json", "r") as f:
    data = json.load(f)

# 过滤掉"B"类字典(可根据实际判断条件调整)
filtered_data = [item for item in data if item.get("type") != "B"]

步骤2:修复endTime列的类型与科学计数法问题

因为缺失值NaN无法存储在普通整数列中,所以要用pandas的可空整数类型Int64(注意大写I),既能保留整数格式,又能兼容缺失值。同时通过数值转换修复科学计数法问题:

# 归一化过滤后的数据
df = pd.json_normalize(filtered_data)

# 处理endTime列:先将字符串格式的数值转为数值类型,再转成可空整数
df["endTime"] = pd.to_numeric(df["endTime"], errors="coerce").astype("Int64")

# 若需要将NaN替换为特定值(比如0),执行以下代码(替换后可转成普通int类型)
# df["endTime"] = df["endTime"].fillna(0).astype(int)

补充说明

  • pd.to_numeric的errors="coerce"参数,会把无法转成数值的内容(比如空字符串)统一转为NaN,方便后续处理
  • 可空整数类型Int64是pandas专门针对带缺失值的整数场景设计的,解决了普通int列无法存储NaN的问题
  • 如果填充NaN后仍显示科学计数法,可通过pd.set_option('display.float_format', '{:.0f}'.format)强制以整数格式显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:21:36