Pandas中Dataframe与Series转换List及Dict的方法详解

Evan
Evan
发布时间:2026-10-14 | 4人浏览过
原创

本文详细讲解在Python Pandas库中,如何将Dataframe和Series对象转换为List列表格式,包括提取单列、去重及多维转换。同时介绍将Dataframe转换为字典(Dict)的两种常用方法:直接转换与设置索引后转换,并对比其结果差异,适用于词云生成等场景。

Dataframe转换为List的方法

将Dataframe转换为List

首先准备一个包含多列的多维Dataframe作为输入数据:


 df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9], 'b':[3,5,6,2,4,6,7,8,7,8,9]})

提取其中a列的所有元素并转换为List:


# 方法1df['a'].values.tolist() # 方法2df['a'].tolist()

若需提取a列中不重复的元素并转换为List,可使用以下方法:


df['a'].drop_duplicates().values.tolist()

接着处理一维Dataframe的情况:


df = pd.DataFrame([3, 5, 6, 2, 4, 6, 7, 8, 7, 8, 9])

将其整体转换为List的List(即二维列表):


df.values.tolist()

Series转换为List

将Series转换为List


Series.tolist()

Dataframe转换为字典(Dict)

Python将Dataframe转化为字典(dict)

在某些应用场景中,例如生成词云时,我们需要将Dataframe中的一列作为键(key),另一列作为对应的值(value),此时传入的数据类型应为字典格式。


import pandas as pd
data = pd.DataFrame([['a',1],['b',2]], columns=['key','value'])
dict1 = dict(zip(data['key'],data['value']))

data
Out[25]: 
  key value
0  a   1
1  b   2

最终输出的结果如下所示:

dict1 Out[8]: {'a': 1, 'b': 2}

Dataframe内置了直接转换为字典格式的方法。需要注意的是,这种直接转换生成的是复合字典:每一列以Dataframe的索引(index)为键,该列的值作为字典的值,最终所有列被整合在一个大字典中。


data.to_dict()

Out[10]: {'key': {0: 'a', 1: 'b'}, 'value': {0: 1, 1: 2}}

如果我们希望实现“一列作为字典的key,另一列作为value”的效果,可以先将目标key列设置为Dataframe的索引,再调用上述转换方法即可实现。


dict2 = data.set_index('key').to_dict()

使用时需注意,这种方法输出的字典依然是复合结构,其中包含一个用于表示原Dataframe列名的键(即value列的列名)。


dict2

Out[24]: {'value': {'a': 1, 'b': 2}}

至此,关于Pandas中Dataframe或Series转换为List及Dict的方法介绍完毕。如需了解更多相关内容,欢迎查阅本站过往文章或继续浏览后续教程,感谢支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表