如何基于Pandas现有列创建JSON格式的新列?
给Pandas DataFrame新增字典列的两种实现方法
嘿,刚好做过类似的需求,给你两个简单实用的方案,轻松实现你要的效果:
方法1:逐行生成字典(直观易懂)
用apply按行处理,每一行直接转成字典就行,代码如下:
import pandas as pd # 先构造你的示例DataFrame df = pd.DataFrame({ 'A': [1, 4, 7, 0], 'B': [2, 5, 8, 1], 'C': [3, 6, 9, 2] }) # 新增D列,每行是A、B、C列组成的字典 df['D'] = df.apply(lambda row: row.to_dict(), axis=1)
这里axis=1指定按行操作,row.to_dict()会自动把当前行的列名作为键、对应值作为值,生成你需要的字典格式。
方法2:批量生成(性能更优)
如果你的数据集比较大,推荐用to_dict('records')批量生成字典列表,再赋值给D列,比apply效率高很多:
# 只针对A、B、C列生成字典列表,然后赋值给D列 df['D'] = df[['A', 'B', 'C']].to_dict('records')
to_dict('records')会直接把指定列的所有行转换成字典组成的列表,每个元素就是一行对应的键值对,完美匹配需求。
验证结果
运行完代码后,打印df就能得到你想要的输出:
A B C D 0 1 2 3 {'A': 1, 'B': 2, 'C': 3} 1 4 5 6 {'A': 4, 'B': 5, 'C': 6} 2 7 8 9 {'A': 7, 'B': 8, 'C': 9} 3 0 1 2 {'A': 0, 'B': 1, 'C': 2}
内容的提问来源于stack exchange,提问作者user12428796
相关产品推荐
相关产品推荐

