在数据分析领域,处理和分析嵌套JSON数据是一项常见且重要的任务。本文将详细介绍六种不同的方法,用于将嵌套JSON字符串转换为结构化的Pandas DataFrame,并进行比较分析。我们将从数据初始化开始,逐步介绍每种方法的实现过程、结果展示、方法解析、优缺点以及参考文献。
数据初始化与预览
首先,我们创建一个包含订单编号和报告数据的DataFrame。报告数据是JSON编码的字符串列表,每个字符串代表一个字典,字典中包含车辆交易价格的属性和变化范围。
import pandas as pd
# 示例数据
df = pd.DataFrame({
'order_no': [1, 2],
'repot': [
'[{"车商收车价": "1.95->2.03"}, {"车商批发价": "1.99->2.07"}]',
'[{"车商零售价": "2.40->2.48"}, {"个人间交易价": "2.21->2.29"}]'
]
})
print("初始化数据预览:")
print(df)
原始数据
order_no | repot |
---|---|
1 | [{“车商收车价”: “1.95->2.03”}, {“车商批发价”: “1.99->2.07”}] |
2 | [{“车商零售价”: “2.40->2.48”}, {“个人间交易价”: “2.21->2.29”}] |
期望结果
order_no | 车商收车价 | 车商批发价 | 车商零售价 | 个人间交易价 |
---|---|---|---|---|
1 | 1.95->2.03 | 1.99->2.07 | ||
2 | 2.40->2.48 | 2.21->2.29 |
方法1:使用json_normalize
和explode
实现过程
import ast
# 解析JSON字符串并展开
df['repot'] = df['repot'].apply(ast.literal_eval)
normalized = pd.json_normalize(df['repot'].explode())
df_expanded_method1 = pd.concat