当前位置: 首页 > news >正文

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

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

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

    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)
    

    输出:

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

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

    dict_index = df.to_dict(orient='index')
    print(dict_index)
    

    输出:

    {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'
    每个键(列名)对应的值是一个列表,包含该列的所有数据(与默认行为类似,但结构更清晰)。

    dict_columns = df.to_dict(orient='columns')
    print(dict_columns)
    

    输出:

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

    dict_split = df.to_dict(orient='split')
    print(dict_split)
    

    输出:

    {'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 属性相同)。

    dict_values = df.to_dict(orient='values')
    print(dict_values)
    

    输出:

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

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


http://www.mrgr.cn/news/45614.html

相关文章:

  • JAVA开源项目 新生报到网站 计算机毕业设计
  • STM32-HAL库 驱动DS18B20温度传感器 -- 2024.10.8
  • Java的锁机制详解
  • 图像人脸与视频人脸匹配度检测
  • boost之第三方线程池
  • C高级--shell脚本实现分支判断
  • 简易STL实现 | Multiset 的实现
  • Badge插件的用法
  • Unite Shanghai 2024 团结引擎专场 | 团结引擎 OpenHarmony 工程剖析
  • 多线程编程的利器:C++线程锁深度解析
  • CMake
  • mysql游标的使用
  • 抖音小红书AI真人美女套图玩法,多种变现方式,手把手教你
  • APP自动化搭建与应用
  • 牛客 KY264 单词识别
  • 解析Vue源码中是如何进行模版编译的
  • 【代码随想录Day37】动态规划Part06
  • 电影《749局》路演 苗苗演绎超能力少女分享幕后故事
  • JavaScript的内置对象有哪些?
  • Java基础(上)