【Pandas】将DataFrame对象转换为字典或列表的方法

您所在的位置:网站首页 python把数组变成字典 【Pandas】将DataFrame对象转换为字典或列表的方法

【Pandas】将DataFrame对象转换为字典或列表的方法

2024-07-15 15:45| 来源: 网络整理| 查看: 265

一. 数据准备

使用Excel创建一个名为 “demo.csv”的文件,并用pd.read_csv()的方法读入:

import pandas as pd category = pd.read_csv(r'C:\Users\16676\Desktop\demo.csv') print(category)

csv文件的内容如下,为避免歧义,这里做如下规定:

  二. 将DataFrame对象转换为字典 1. 将指定列作为键,另一列作为值:

注 :不指定索引时,默认直接使用df对象的行索引充当键

# 将'index'作为键,'category'作为值 category_dict1 = category.set_index('index')['category'].to_dict() print(f'dict1-->{dict1}') # 将'category'作为键,'index'作为值 category_dict2 = category.set_index('category')['index'].to_dict() print(f'dict2-->{dict2}') # 不指定索引 category_dict3 = category['category'].to_dict() print(f'不指定索引时-->{category_dict3}')

效果如下:

2.  将整个DataFrame转换为字典

此时,输出格式为字典嵌套字典:列名充当外层字典的key,内层字典充当外层字典的value,其中内层字典的key为行索引,内层字典的value为各列元素值 :

# to_dict()可以指定输出格式,默认值为'dict' category_dict = category.to_dict() print(f'输出格式为"dict"时-->{category_dict}')

效果如下: 

 

3. 将df对象的每一列转换为一个字典 

此时,列名作为外层字典的key,每列的值作为一个列表充当字典的value :

# 指定输出格式为'list' category_dict = category.to_dict('list') print(f'输出格式为"list"时-->{category_dict}')

效果如下: 

 

4. 将df对象的每一行转换为一个字典 

此时,key为该列的列名,value为元素值,外层用列表包裹 :

# 指定输出格式为'records' category_dict = category.to_dict('records') print(f'输出格式为"records"时-->{category_dict}')

效果如下: 

 

5.  将df对象的每一个series转换为一个字典

此时,key为series的'Name',value为series本身:

# 指定输出格式为'series' category_dict = category.to_dict('series') print(category.category) print(type(category.category)) print(f'输出格式为"records"时-->{category_dict}')

查看原始的Series输出如下: 

 

转换后的效果如下:

 

三. 将DataFrame转换为列表的方法 

相比将DataFrame转换为字典,将其转换为列表的应用场景并不多,这里只做简单介绍:

# 1.转换为二维列表(每一行作为一个子列表) category_list1 = category.values.tolist() print(f'每一行作为一个子列表:\n{category_list1}') # 2.转换为按列转置后的列表(将每一列转换为一个列表) category_list3 = category.T.apply(lambda row: row.tolist(), axis=1).tolist() print(f'将每一列转换为一个列表:\n{category_list3}') # 3.转换为一维列表,包含所有元素 category_list2 = category.values.flatten().tolist() print(f'转换为一维列表:\n{category_list2}') # 4.只转换特定列为列表 category_col = category['category'].tolist() print(f'转换特定列为列表:\n{category_col}')

效果如下:

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3