pandas关于to_dict的使用

to_dict()使用

Pandas 处理数据的基本类型为DataFrame,数据清洗时不可必然会关系到数据类型转化问题,Pandas在这方面也做的也非常不错,其中经常用的是 DataFrame.to_dict()函数之间转化为字典类型;除了转化为字典之外,Pandas还提供向 jsonhtmllatexcsv等格式的转换
to_dict()函数基本语法:

DataFrame.to_dict(self,orient = 'dict',into = )

注意:函数中只需填一个参数:orient即可,但对于写入的orient不同,字典的构造方式也不同,其中有一种是列表形式

  • orient = 'dict' 函数默认,转换后的字典形式:{column:{index:value}}

  • orient = 'list'转换后字典形式:{column:[values]}

  • orient = 'series'转换后字典形式:{column:Series(value)}

  • orient = 'split'转换后字典形式:{'index':[index],'columns':[columns],'data':[values]}

  • orient = 'records'转换后list形式:[{column:value}...{column:value}]

  • orient = 'index'转换后字典形式:{index:{column:value}}

举例说明

import pandas as pd
df =pd.DataFrame({'name':['devil','angel'],'age':[12,18]},index =['10086','10089'])

在这里插入图片描述

orient = ‘dict’
  • 能够方便得到:在某一列对应的行名与各值之间的字典数据类型 {column -> {index -> value}}
  • 构造好的字典形式:{第一列的列名:{第一行的行名:value值,第二行行名,value值},…}
  • 栗子:在源数据上想要得到name这一列行名与各值之间的字典,直接在生成的字典中查询列名为name
  • 查询方式:df[key1][key2]
df.to_dict(orient = 'dict')
df.to_dict(orient = 'dict')['name']

在这里插入图片描述

orient = ‘list’
  • 能够方便得到:某一列各值所生成的列表集合{column -> [values]}
  • 生成字典中key为各列名,value为各列对应值的列表
  • 栗子:在源数据上想要得到name对应值的列表
  • 查询方式:df[keys][index]
df.to_dict(orient = 'list')
df.to_dict(orient = 'list')['name']

在这里插入图片描述

orient = ‘series’
  • orient = 'series’和orient = 'list’的唯一区别:这里的value是series数据类型,而list是列表类型{column -> Series(values)}
  • 查询方式:df[key1][key2]或df[key1]
df.to_dict(orient = 'series')
df.to_dict(orient = 'series')['name']

在这里插入图片描述

orient = ‘split’
  • 可以方便得到:DataFrame数据表中全部列名或者行名的列表形式{index -> [index], columns -> [columns], data -> [values]}
  • 得到三个键值对,列名、行名、值各一个,value统一都是列表形式
  • 栗子:想要得到全部的列名
  • 调用方式:df[‘index’],df[‘columns’],df[‘data’]
df.to_dict(orient = 'split')
df.to_dict(orient = 'split')['columns']

在这里插入图片描述

orient = ‘records’
  • 可以方便得到:列名与某一行值形成的字典数据
  • 返回的数据类型不是dict; 而是list列表形式,由全部列名与每一行的值形成一一对应的映射关系[{column -> value}, … , {column -> value}]
  • 栗子:想要第1行{column:value}得数据
  • 调用方式:df[index][key1]
df.to_dict(orient = 'records')
df.to_dict(orient = 'records')[0]

在这里插入图片描述

orient = ‘index’
  • orient = 'index’与orient = 'dict’刚好相反,某一行中列名与值之间一一对应关系{index -> {column -> value}}
df.to_dict(orient = 'index')
df.to_dict(orient = 'index')['10086']

在这里插入图片描述

  • 17
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值