`pandas` 库提供了一个非常方便的方法将 DataFrame 转换为字典

devtools/2024/10/9 2:37:20/

在 Python 中,pandas 库提供了一个非常方便的方法将 DataFrame 转换为字典。DataFrame.to_dict() 方法可以根据你的需求将 DataFrame 转换为不同类型的字典。以下是一些常见的用法示例:

  1. 转换为字典的列表(默认行为)
    每个键(列名)对应的值是一个列表,包含该列的所有数据。

    python">import pandas as pd# 创建一个示例 DataFrame
    data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'Los Angeles', 'Chicago']
    }
    df = pd.DataFrame(data)# 转换为字典的列表
    dict_list = df.to_dict()
    print(dict_list)
    

    输出:

    python">[{'Name': 'Alice', 'Age': 25, 'City': 'New York'},{'Name': 'Bob', 'Age': 30, 'City': 'Los Angeles'},{'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'}]
    
  2. 转换为记录字典(orient='records'
    与默认行为相同,但明确指定参数。

    python">dict_records = df.to_dict(orient='records')
    print(dict_records)
    
  3. 转换为索引字典(orient='index'
    每个键(索引)对应的值是一个字典,包含该行的所有列数据。

    python">dict_index = df.to_dict(orient='index')
    print(dict_index)
    

    输出:

    python">{0: {'Name': 'Alice', 'Age': 25, 'City': 'New York'},1: {'Name': 'Bob', 'Age': 30, 'City': 'Los Angeles'},2: {'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'}}
    
  4. 转换为列字典(orient='columns'
    每个键(列名)对应的值是一个列表,包含该列的所有数据(与默认行为类似,但结构更清晰)。

    python">dict_columns = df.to_dict(orient='columns')
    print(dict_columns)
    

    输出:

    python">{'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'Los Angeles', 'Chicago']}
    
  5. 转换为拆分字典(orient='split'
    返回一个包含两个键的字典:'index''columns',分别包含行索引和列名,以及一个 'data' 键,包含数据值。

    python">dict_split = df.to_dict(orient='split')
    print(dict_split)
    

    输出:

    python">{'index': [0, 1, 2],'columns': ['Name', 'Age', 'City'],'data': [['Alice', 25, 'New York'],['Bob', 30, 'Los Angeles'],['Charlie', 35, 'Chicago']]}
    
  6. 转换为值字典(orient='values'
    返回一个包含 DataFrame 数据的嵌套列表(与 .values 属性相同)。

    python">dict_values = df.to_dict(orient='values')
    print(dict_values)
    

    输出:

    python">[['Alice', 25, 'New York'],['Bob', 30, 'Los Angeles'],['Charlie', 35, 'Chicago']]
    

选择哪种方法取决于你希望字典结构如何反映 DataFrame 的数据。


http://www.ppmy.cn/devtools/123150.html

相关文章

如何让70B参数的大型语言模型在资源有限的边缘设备上高效运行?

你有没有想过,像我们平时使用的智能手机、家里的智能音箱这样的小设备,也能运行那些参数量高达数十亿的大型语言模型(LLM)呢?这听起来像是天方夜谭,毕竟这些模型动辄需要巨大的算力和存储资源,但实际上,随着技术的发展,这个梦想正在变成现实。那么,问题来了,怎么在资…

Pikachu-url重定向-不安全的url跳转

不安全的url跳转 不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。如果后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话就可能发生"跳错对象"的问题。 url跳转比较直接的危害是: …

qt QMessageBox案例,2024.10.8

当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录 当用户点击的登录按钮&#xff…

六、Drf限流组件

六、限流组件 限制某个视图在某个时间段内被同一个用户访问的次数 6.1限流组件的简单应用 1)安装django-redis pip3 install django-redis2)在settings.py中注册cache #缓存数据库redis配置 CACHES{"default":{"BACKEND":"django_red…

【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白

【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白 调整前效果解决方法调整后效果参考文献 调整前效果 调整前:脚注位于左下角,但右栏与左栏内容对其,未填充右下角的空白区域 解决方法 备份源文件复制脚注内…

【堆排】为何使用向下调整法建堆比向上调整法建堆更好呢?

文章目录 前言一、堆排代码一、计算使用向上调整法建堆的时间复杂度二、计算使用向下调整法插入的时间复杂度总结 前言 在博主的上一篇博客堆排(链接在这里点击即可)的总结中提出啦使用向下调整法建堆比使用向上调整法建堆更好,是因为使用向上调整法建堆的时间复杂…

SimpleFoc以及SVPWM学习补充记录

SimpleFoc SimpleFOC移植STM32(一)—— 简介 FOC控制的过程是这样的: 对电机三相电流进行采样得到 Ia,Ib,Ic。将 Ia,Ib,Ic 经过Clark变换得到 I_alpha I_beta。将 I_alpha I_beta 经过Park变换得到 Id,Iq。计算 Id,Iq 和其设定值 Id_ref 和…

gbase8s数据库实现黑白名单的几种方案

1、借用操作系统的黑白名单 2、使用数据库 TRUSTED CONTEXT 机制 CREATE TRUSTED CONTEXT tcx1USER rootATTRIBUTES (ADDRESS 172.16.39.162)ATTRIBUTES (ADDRESS 172.16.39.163)ENABLEWITH USE FOR wangyx WITHOUT AUTHENTICATION; 如上创建 可信任上下文对象 tcx1 在 jdb…