`pandas` 库提供了一个非常方便的方法将 DataFrame 转换为字典
在 Python 中,pandas
库提供了一个非常方便的方法将 DataFrame 转换为字典。DataFrame.to_dict()
方法可以根据你的需求将 DataFrame 转换为不同类型的字典。以下是一些常见的用法示例:
-
转换为字典的列表(默认行为):
每个键(列名)对应的值是一个列表,包含该列的所有数据。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'}]
-
转换为记录字典(
orient='records'
):
与默认行为相同,但明确指定参数。dict_records = df.to_dict(orient='records') print(dict_records)
-
转换为索引字典(
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'}}
-
转换为列字典(
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']}
-
转换为拆分字典(
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']]}
-
转换为值字典(
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 的数据。