如何在DataFrame中添加字典格式的自定义汇总列?
解决方案:为DataFrame添加字典格式的汇总列
步骤1:构造初始DataFrame
先还原你提供的数据集:
import pandas as pd data = { 'Person': [174, 239, 557, 674, 122], 'Analysis': [3.76, 4.10, 5.00, 2.23, 3.33], 'Dexterity': [4.12, 3.78, 2.00, 2.40, 4.80], 'Skills': [1.20, 3.77, 4.40, 2.80, 4.10] } df = pd.DataFrame(data)
步骤2:添加字典格式的汇总列
提供两种实现方式:
方式1:使用apply逐行转换(代码简洁,适合中小数据集)
通过apply遍历每行,将指定列转为字符串后生成字典:
df['new_column'] = df[['Analysis', 'Dexterity', 'Skills']].apply( lambda row: row.astype(str).to_dict(), axis=1 )
方式2:使用列表推导式(性能更优,适合大数据集)
直接通过遍历列值生成字典,避免apply的额外开销:
df['new_column'] = [ {'Analysis': str(a), 'Dexterity': str(d), 'Skills': str(s)} for a, d, s in zip(df['Analysis'], df['Dexterity'], df['Skills']) ]
最终效果
执行上述代码后,DataFrame将变为:
| Person | Analysis | Dexterity | Skills | new_column |
|---|---|---|---|---|
| 174 | 3.76 | 4.12 | 1.20 | {"Analysis":"3.76", "Dexterity":"4.12", "Skills":"1.20"} |
| 239 | 4.10 | 3.78 | 3.77 | {"Analysis":"4.10", "Dexterity":"3.78", "Skills":"3.77"} |
| 557 | 5.00 | 2.00 | 4.40 | {"Analysis":"5.00", "Dexterity":"2.00", "Skills":"4.40"} |
| 674 | 2.23 | 2.40 | 2.80 | {"Analysis":"2.23", "Dexterity":"2.40", "Skills":"2.80"} |
| 122 | 3.33 | 4.80 | 4.10 | {"Analysis":"3.33", "Dexterity":"4.80", "Skills":"4.10"} |
内容的提问来源于stack exchange,提问作者Taiguara Cavaliere
相关产品推荐
相关产品推荐

