如何将DataFrame列中的JSON字符串拆分为多列
解决方法
步骤说明
你的数据中「数据」列的字符串是单引号格式的类JSON结构(非标准JSON),需要先转换成Python字典,再拆分为单独列。
完整代码
import pandas as pd import ast # 模拟你的原始DataFrame df = pd.DataFrame({ 'ID': [11, 22, 33], '数据': ["{'Name': 'Sam', 'Age': 21}", "{'Name': 'Nam', 'Age': 22}", "{'Name': 'Pam', 'Age': 21, 'Salary': 10000}"] }) # 将字符串转为字典 df['数据'] = df['数据'].apply(ast.literal_eval) # 解析字典为单独列,合并原ID列 result_df = pd.concat([df['ID'], pd.json_normalize(df['数据'])], axis=1) # 填充缺失值为空字符串(匹配期望结果) result_df['Salary'] = result_df['Salary'].fillna('') # 查看结果 print(result_df)
代码解释
ast.literal_eval:安全解析单引号格式的字符串为Python字典,避免eval带来的安全风险。pd.json_normalize:将字典列表转换为结构化DataFrame,自动提取所有键作为列,缺失字段填充为NaN。fillna(''):把NaN替换为空字符串,和你期望的输出格式一致。
内容的提问来源于stack exchange,提问作者DEs
相关产品推荐
相关产品推荐

