Pandas如何将DataFrame多列转换为字典存入新列
实现方法
你可以直接用Pandas内置的to_dict方法按行转换指定列,再删除原列即可,完整代码如下:
import pandas as pd # 先构造你的样例DataFrame df = pd.DataFrame({ 'Country': ['Russia', 'Canada', 'China'], 'Capital': ['Moscow', 'Ottawa', 'Beijing'], 'Area': [6601670, 3855100, 3705407], 'Population': [146171015, 38048738, 1400050000] }) # 需要合并到Details列的列名 merge_cols = ['Capital', 'Area', 'Population'] # 生成Details字典列 df['Details'] = df[merge_cols].to_dict('records') # 删除原有的对应列 df = df.drop(merge_cols, axis=1) print(df)
to_dict传入参数'records'会直接将选中列的每行数据转换为键为列名、值为对应行值的字典,刚好匹配你需要的格式,运行后输出结果如下:
Country Details 0 Russia {'Capital': 'Moscow', 'Area': 6601670, 'Population': 146171015} 1 Canada {'Capital': 'Ottawa', 'Area': 3855100, 'Population': 38048738} 2 China {'Capital': 'Beijing', 'Area': 3705407, 'Population': 1400050000}
注:你问题里示例输出的China行Capital字段错写为Ottawa属于笔误,上述代码生成结果为正确的Beijing
内容的提问来源于stack exchange,提问作者komal
相关产品推荐
相关产品推荐

