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

如何将DataFrame中的字典列拆分为新列并保留索引以合并至原数据表?

解决pd.json_normalize拆分字典列后丢失索引的问题

遇到这种索引不对齐的情况,核心是要让拆分后的统计列DataFrame和原DataFrame保持相同的索引,这样合并时就能准确对应每一行数据。下面给你两种实用的解决方案:

方法1:用apply(pd.Series)拆分(推荐,更简洁)

apply(pd.Series)会自动将每个字典转换成对应的列,并且保留原DataFrame的索引,完美解决对齐问题:

import pandas as pd

# 假设你的原DataFrame是df
# 拆分stats列,自动保留原索引
stats_columns = df['stats'].apply(pd.Series)

# 合并原DataFrame(去掉stats列)和拆分后的列
final_df = pd.concat([df.drop('stats', axis=1), stats_columns], axis=1)

运行后final_df就会包含原有的ID、name、value列,以及拆分后的mean、median、std列,每一行数据都能正确对应。

方法2:手动给json_normalize结果设置索引

如果你更习惯用pd.json_normalize,只需要手动把拆分后的DataFrame索引设置为原DataFrame的索引即可:

# 用json_normalize拆分,然后重置索引为原df的索引
stats_columns = pd.json_normalize(df['stats']).set_index(df.index)

# 合并到原DataFrame
final_df = pd.concat([df.drop('stats', axis=1), stats_columns], axis=1)

这样做的原理是:pd.json_normalize默认会生成从0开始的新索引,我们通过set_index(df.index)强制让它使用原DataFrame的索引,确保合并时行对齐。

你可以打印final_df验证结果,应该就能得到你想要的结构啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:42:48