Pandas中Dataframe与Series转换List及Dict的方法详解
本文详细讲解在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的方法介绍完毕。如需了解更多相关内容,欢迎查阅本站过往文章或继续浏览后续教程,感谢支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













