pandas dataframe column_pandas中的to_dict()函数的一点认识

pandas的版本为:0.25.1

一、问题:

如何将表格中的数据转换成字典格式,如:{a:11,b:22,....}?

59d4859ffe96bda0b42ac76ec74159a5.png

解决办法有很多种,比如

可以用字典推导式:

df 

也可以利用pandas中to_dict()进行转换:

df

或者

df.code.to_dict()

用两种方法转换起来都不难,但是如何将下图转换成

{a:{'1':41, '2':98,'3':53},'b':{'1':15,'2':64,'3':36}}

370a13b103b444ab4e8dfe052c5d2cd3.png

二、to_dict()介绍

在解决问题之前,先介绍一下pandas中的to_dict()函数,to_dict()函数有两种用法,pd.DataFrame.todict()和pd.Series.to_dict()其中Series.to_dict()较简单

  • Series.to_dict(): 将Series转换成{index:value}

具体用法,可参考文章开头部分的:df.code.to_dict()

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

orient: 'dict','list','series','split','records','index'

  • 'dict': {column->{index->values}}

4bd5245244ed7e1ab78e2fe513dede41.png

{c1:{r0:11, r1:44, r2:77}, c2:{r0:22, r1:55, r2:88}}

  • 'list': {column:[values]}

4bd5245244ed7e1ab78e2fe513dede41.png

{c1:[11, 44,77], c2:[22, 55, 88]}

  • 'series':{column->series}

4bd5245244ed7e1ab78e2fe513dede41.png

{c1: series, c2:series}

  • 'split':{index->[index], column->[column], value->[value]}

4bd5245244ed7e1ab78e2fe513dede41.png

{index:[r0, r1, r2], column:[c1, c2], value:[11, 22, 44, 55, 77, 88]}

  • 'record':[{column->value}] ,返回的为列表

4bd5245244ed7e1ab78e2fe513dede41.png

[{c1:11,c2:22},{c1:44, c2:55},{c1:77, c2:88}]

  • 'index':{index->{column->value}} ,与"dict"类似,只不过index与column互换位置

4bd5245244ed7e1ab78e2fe513dede41.png

{r0:{c1:11,c2:22},r1:{c1:44,c:55},r2:{c1:77,c2:88}}

三、代码

to_dict()函数介绍完了,那该如何利用to_dict()解决文章开头提到的那个问题?

370a13b103b444ab4e8dfe052c5d2cd3.png
new_df 

若有错误,敬请批评指正

欢迎添加公众号:驿路向北,与我进行交流。

e3e3fd0f1bfdd66239f459e682f4fa28.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值