如何使用pandas读取嵌套JSON并将内层字段展开为独立列
pandas读取嵌套JSON展开为独立列的实现方法
你可以通过以下两种常用方案实现嵌套字段的展开:
方案1:读取时直接用json_normalize处理(推荐)
pd.json_normalize是pandas专门用于处理半结构化嵌套JSON数据的工具,可以直接按层级展开字段:
import pandas as pd import json # 加载本地JSON文件 with open("你的JSON文件路径.json", "r", encoding="utf-8") as f: json_data = json.load(f) # 展开嵌套字段,默认展开后列名为 DataVal.xxx 格式 df = pd.json_normalize(json_data) # 可选:去掉列名的DataVal前缀,直接用字段名作为列名 df.columns = df.columns.str.removeprefix("DataVal.")
方案2:对已读取的DataVal列直接转换
如果你已经通过pd.read_json读取得到仅含DataVal列的DataFrame,可以直接将该列的字典内容转为独立列:
# 假设已读取的原始DataFrame名为df_raw df = pd.DataFrame(df_raw["DataVal"].tolist())
可选:字段类型转换
如果需要将sales、cost等字符串格式的数值转为数值类型,date转为日期类型,可以补充以下代码:
# 数值类型转换 df[["sales", "cost", "hr", "month"]] = df[["sales", "cost", "hr", "month"]].apply(pd.to_numeric) # 日期类型转换 df["date"] = pd.to_datetime(df["date"])
内容的提问来源于stack exchange,提问作者Aakash
相关产品推荐
相关产品推荐

