如何将DataFrame多行数据转换为指定格式的字典?
将DataFrame转换为指定格式字典
需求说明
现有列名为car和bike的DataFrame,数据如下:
| car | bike |
|---|---|
| mazda | honda |
| toyota | kawasaki |
| ford | suzuki |
需要转换为如下格式的字典:
{'car': ['mazda', 'toyota', 'ford'], 'bike': ['honda', 'kawasaki', 'suzuki']}
错误原因分析
尝试dict(df.values)时出现TypeError: 'dict' object is not callable,通常有两个原因:
df.values返回二维numpy数组,不符合dict()的参数要求(需传入可迭代的键值对)- 可能之前将变量名设为
dict(比如dict = {}),覆盖了Python内置的dict()构造函数,导致无法调用
符合要求的解决方案
按照老师提示的x for x in df遍历逻辑,使用字典推导式即可实现需求:
result_dict = {col: df[col].tolist() for col in df}
代码解释
for col in df:遍历DataFrame的所有列名(即car和bike)df[col].tolist():将当前列的所有数据转换为列表- 推导式最终生成以列名为键、对应列数据列表为值的字典,完全匹配目标格式
内容的提问来源于stack exchange,提问作者opperman.eric
相关产品推荐
相关产品推荐

