📜  将 pandas 组转换为 dict - Python (1)

📅  最后修改于: 2023-12-03 15:39:13.091000             🧑  作者: Mango

将 Pandas DataFrame 转换为 dict - Python

在数据处理中,Pandas 经常被用来处理大量数据,并且 Pandas 中的 DataFrame 类型是最常用的数据结构之一。有时我们需要将 Pandas DataFrame 转换为 Python 字典(dict)类型。这篇文章将会介绍如何使用 Pandas 中的 to_dict 函数来将 DataFrame 转换为字典类型。

准备工作

首先,我们需要安装 Pandas 库,可以通过以下命令来安装:

pip install pandas
转换方法

使用 Pandas 中的 DataFrame 中的 to_dict() 函数,可以将 DataFrame 转换为一个字典。

import pandas as pd

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'gender': ['F', 'M', 'M', 'M']
})

dictionary = df.to_dict()
print(dictionary)

输出如下:

{'name': {0: 'Alice', 1: 'Bob', 2: 'Charlie', 3: 'David'}, 'age': {0: 25, 1: 32, 2: 18, 3: 47}, 'gender': {0: 'F', 1: 'M', 2: 'M', 3: 'M'}}

我们可以看到,to_dict() 函数返回了一个字典对象,其中字典的键(key)是 DataFrame 列头,字典的值(value)是列中的所有值。

to_dict() 函数也接受一个参数 orient,用于设置字典的形式。

  • orient='dict': 默认选项。返回一个字典,字典的 key 是列名,value 是一个字典,其中 key 是 DataFrame 中的索引,value 是 DataFrame 中每个单元格的值。
  • orient='list': 返回一个字典,字典的 key 是列名,value 是一个列表,列表中的值是 DataFrame 中每个单元格的值。
  • orient='series': 返回一个字典,字典的 key 是列名,value 是一个 Pandas Series 类型的对象。
  • orient='split': 返回一个字典,字典的 key 是 'columns' 和 'data',分别代表 DataFrame 的列名和数据。
import pandas as pd

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'gender': ['F', 'M', 'M', 'M']
})

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

输出如下:

{'columns': ['name', 'age', 'gender'], 'data': [['Alice', 25, 'F'], ['Bob', 32, 'M'], ['Charlie', 18, 'M'], ['David', 47, 'M']]}
结论

在 Python 中将 Pandas DataFrame 转换为字典类型的代码非常简单,只需要使用 DataFrame 中的 to_dict() 函数即可。to_dict() 函数的默认选项将 DataFrame 转换为字典类型,这是最常用的选项。通过指定 orient 参数,可以控制字典类型的形式。