Pandas如何将DataFrame其余列按行转为字典并保留单列
Pandas 列转字典格式实现方案
要实现保留Library列、将TaskName和Number两列的行值转为字典存入新列的需求,直接用Pandas内置的按行转字典方法即可,代码实现如下:
import pandas as pd # 核心转换逻辑 # 1. 选中需要转字典的两列,按行(records模式)转为字典序列,赋值给新列Dict df['Dict'] = df[['TaskName', 'Number']].to_dict('records') # 2. 筛选需要保留的列得到最终结果 result_df = df[['Library', 'Dict']]
- 如果需要
Dict列存储的是字符串格式的字典(和给出的输出示例文本格式完全一致),可以在转字典后追加序列化字符串的操作:
df['Dict'] = df[['TaskName', 'Number']].to_dict('records').apply(str)
转换后输出的result_df结构和目标格式完全匹配,示例运行效果:
Library Dict 0 Group 1 {'TaskName': 'A', 'Number': 1} 1 Group 2 {'TaskName': 'B', 'Number': 2} 2 Group 3 {'TaskName': 'C', 'Number': 3} 3 Group 4 {'TaskName': 'D', 'Number': 4} 4 Group 5 {'TaskName': 'A', 'Number': 5} 5 Group 6 {'TaskName': 'B', 'Number': 6} 6 Group 7 {'TaskName': 'C', 'Number': 7}
注:如果Number列需要保留字符串类型而非数值类型,可以在转换前先执行
df['Number'] = df['Number'].astype(str)做类型转换。
内容的提问来源于stack exchange,提问作者D P
相关产品推荐
相关产品推荐

