将Pandas数据框转换为列表字典的方法
在本文中,我们将介绍如何将Pandas数据框转换为字典列表。我们将使用Pandas中的to_dict方法和DataFrame的apply方法。
阅读更多:Pandas 教程
1. to_dict方法
Pandas的to_dict方法可以将数据框转换为字典。to_dict方法可以处理不同的参数来控制输出格式。to_dict方法的语法如下:
DataFrame.to_dict(self, orient='dict', into=<class 'dict'>)
其中orient参数可以设置输出格式,into参数可以设置输出字典的类型。orient参数可以接受以下值:
- ‘dict’ (default):输出格式为{列名:{行值:单元格值}}的字典。
- ‘list’:输出格式为[{列名1:单元格值1, 列名2:单元格值2, …}, …]的列表。
- ‘series’:输出格式为{列名: Series(行值: 单元格值, …), …}的字典。
- ‘split’:输出格式为{‘index’: [行值列表], ‘columns’: [列名列表], ‘data’: [数据值列表]}。
- ‘records’:输出格式为[{列名1:单元格值1, 列名2:单元格值2, …}, …]的列表,类似于JSON。
以下是一个例子,我们将使用to_dict方法,并将orient参数设置为’list’,into参数设置为默认的dict类型:
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
dict_list = df.to_dict(orient='list', into=dict)
print(dict_list)
输出结果为:
{'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
2. apply方法
Pandas的apply方法可以让我们对数据框的每个单元格应用一个函数。apply方法的语法如下:
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
其中func参数是一个应用于单元格的函数,axis参数控制应用的方向,raw参数控制应用的格式,result_type参数控制输出格式。
以下是一个例子,我们将使用apply方法并将一个lambda函数应用于每个单元格,然后将结果存储为列表字典:
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
dict_list = df.apply(lambda x: {'name': x[0], 'age': x[1]}, axis=1, result_type='expand').to_dict(orient='list')
print(dict_list)
输出结果为:
{'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
总结
以上是将Pandas数据框转换为字典列表的两种方法:使用to_dict方法和apply方法。to_dict方法提供了多种输出格式,apply方法则可以让我们对单元格应用更多的函数并控制输出格式。选择哪种方法取决于数据框的形状和需要的输出格式。