如何将含多值字段的JSON数据正确读取到Pandas DataFrame?
解决Pandas读取JSON时数组字段拆分行的问题
问题场景
读取包含数组字段的JSON(示例:{"day": "Monday", "location": [51.5, -0.2]})时,Pandas误将数组拆分为两行,需要将location的两个值保留在同一行,最终得到类似|1|Monday|51.5,-0.2|的格式。
具体解决方法
正确读取JSON,避免数组自动拆分
如果你的JSON是单个对象(或每行一个对象的JSON Lines格式),直接用pd.read_json读取即可,数组会作为单元格的列表值存在,不会拆分行:import pandas as pd df = pd.read_json('你的JSON文件名.json')将列表格式转为逗号分隔字符串
若需要把location列的列表转为51.5,-0.2这样的字符串格式,用apply处理:df['location'] = df['location'].apply(lambda x: ','.join(map(str, x)))已拆分行的合并处理
如果已经出现拆分后的两行数据,按day分组合并location值:# 假设拆分后的DataFrame为df df_merged = df.groupby('day')['location'].apply(lambda x: ','.join(map(str, x))).reset_index()
最终效果
处理后的DataFrame格式如下:
| day | location | |
|---|---|---|
| 0 | Monday | 51.5,-0.2 |
内容的提问来源于stack exchange,提问作者savi
相关产品推荐
相关产品推荐

