Pandas如何指定特定列映射生成含JSON内容的DataFrame新列
问题解决方法
你只需要在生成JSON前先筛选需要的目标列即可,不需要对全量列做序列化,有两种常用实现方案:
- 方案1:修改原有lambda逻辑,在序列化前先选取A、C两列
# 注意原代码里的n是笔误,替换为你的DataFrame变量名df df['D'] = df.apply(lambda x: x[['A', 'C']].to_json(), axis=1)
- 方案2:数据量较大时推荐,性能比逐行apply高很多,直接对目标列做按行JSON序列化
df['D'] = df[['A', 'C']].to_json(orient='records', lines=True).splitlines()
两种方案最终生成的D列值均为{"A":"1","C":"6"},不会包含B列内容,完全匹配你期望的输出结构。
注意:你给出的期望输出示例里D列的JSON少了C值后的闭合双引号,属于书写笔误,上述代码生成的是标准合法JSON格式。
内容的提问来源于stack exchange,提问作者ApacheOne
相关产品推荐
相关产品推荐

