pandas的版本为:0.25.1
一、问题:
如何将表格中的数据转换成字典格式,如:{a:11,b:22,....}?
![59d4859ffe96bda0b42ac76ec74159a5.png](https://i-blog.csdnimg.cn/blog_migrate/f4b52bc5e1654a175cb4ed000bebaac4.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](https://i-blog.csdnimg.cn/blog_migrate/8ecf039778b4c1122c4dfb50021344bc.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](https://i-blog.csdnimg.cn/blog_migrate/d6ddbb2e82435464474a6da28efe719f.png)
{c1:{r0:11, r1:44, r2:77}, c2:{r0:22, r1:55, r2:88}}
- 'list': {column:[values]}
![4bd5245244ed7e1ab78e2fe513dede41.png](https://i-blog.csdnimg.cn/blog_migrate/d6ddbb2e82435464474a6da28efe719f.png)
{c1:[11, 44,77], c2:[22, 55, 88]}
- 'series':{column->series}
![4bd5245244ed7e1ab78e2fe513dede41.png](https://i-blog.csdnimg.cn/blog_migrate/d6ddbb2e82435464474a6da28efe719f.png)
{c1: series, c2:series}
- 'split':{index->[index], column->[column], value->[value]}
![4bd5245244ed7e1ab78e2fe513dede41.png](https://i-blog.csdnimg.cn/blog_migrate/d6ddbb2e82435464474a6da28efe719f.png)
{index:[r0, r1, r2], column:[c1, c2], value:[11, 22, 44, 55, 77, 88]}
- 'record':[{column->value}] ,返回的为列表
![4bd5245244ed7e1ab78e2fe513dede41.png](https://i-blog.csdnimg.cn/blog_migrate/d6ddbb2e82435464474a6da28efe719f.png)
[{c1:11,c2:22},{c1:44, c2:55},{c1:77, c2:88}]
- 'index':{index->{column->value}} ,与"dict"类似,只不过index与column互换位置
![4bd5245244ed7e1ab78e2fe513dede41.png](https://i-blog.csdnimg.cn/blog_migrate/d6ddbb2e82435464474a6da28efe719f.png)
{r0:{c1:11,c2:22},r1:{c1:44,c:55},r2:{c1:77,c2:88}}
三、代码
to_dict()函数介绍完了,那该如何利用to_dict()解决文章开头提到的那个问题?
![370a13b103b444ab4e8dfe052c5d2cd3.png](https://i-blog.csdnimg.cn/blog_migrate/8ecf039778b4c1122c4dfb50021344bc.png)
new_df
若有错误,敬请批评指正
欢迎添加公众号:驿路向北,与我进行交流。
![e3e3fd0f1bfdd66239f459e682f4fa28.png](https://i-blog.csdnimg.cn/blog_migrate/b85cce88ee08cf2e41ccde19f74c460d.jpeg)