pandas的DataFrame与python的dict字典之间的相互转换

摘要:
否则,将报告错误#1。在dict外部添加一层list[]dict _ a=[{'a':带有[]的数据的形式为listdict_a={'a':2}#任何listdict_ a={'a':2}#任何数量的listdicts_a={'a:如果dict中的数据是列表('a':生成的df数据也是列表dict_b=[{'a':否则,将报告一个错误dict_b={':dict_b':“dict”(默认值)。

一、dict生成DataFrame

 1、如果只有一个dict,即一行dataframe数据

# 注:dict的形式必须是如下2种,不然会报错

# 1、dict外面加一层list【】
dict_a = [{'a': 0, 'b': 1, 'c': 2}] 


# 2、dict内部的数据至少有1个或多个是list形式
# 注:此时dict外面如果加上list,即[{}]形式,生成的df,有[]的数据是list形式
dict_a = {'a': [0], 'b': 1, 'c': 2}  # 任意一个list
dict_a = {'a': [0], 'b': [1], 'c': 2}  # 任意多个list
dict_a = {'a': [0], 'b': [1], 'c': [2]}


pd.DataFrame(dict_a)
>>
输出:

pandas的DataFrame与python的dict字典之间的相互转换第1张

 2、多行dataframe

# 多行有以下3种形式:

# list里面套多个dict,一个dict是一行数据。
# 注:dict里面的数据如果是list( 'a': [0]形式),生成的df数据也是list形式
dict_b = [{'a': 0, 'b': 1, 'c': 2}, {'a': 3, 'b': 4, 'c': 5}, {'a': 6, 'b': 7, 'c': 8}]


# dict形式,数据是list形式。
# 注:如果是一行数据,需要是list形式,不然会报错
dict_b = {'a': [0, 3, 6], 'b': [1, 4, 7], 'c': [2, 5, 8]}


# 这种情况针对有一列数据一样的情况:
dict_b = {'a': 1, 'b': [1, 4, 7], 'c': [2, 5, 8]}  # a列全为1,可以简写

>>
输出:

pandas的DataFrame与python的dict字典之间的相互转换第2张pandas的DataFrame与python的dict字典之间的相互转换第3张

 二、pandas转换为dict

使用方法df.to_dict()

参数:'dict' (默认) ,'list','series','split','records','index'

# 拿上面的数据举例,df_b
     a    b    c
0    0    1    2
1    3    4    5
2    6    7    8


# 1、不传入参数,默认是'dict'
df_b.to_dict()  # 列标题作为外层dict键值,索引作为内层dict键值
>> 
{'a': {0: 0, 1: 3, 2: 6}, 'b': {0: 1, 1: 4, 2: 7}, 'c': {0: 2, 1: 5, 2: 8}}


# 2、'list'
df_b.to_dict('list')  # 列标题是外层键值,内层是list
>>
{'a': [0, 3, 6], 'b': [1, 4, 7], 'c': [2, 5, 8]}

# 3、'split'
df_b.to_dict('split')  # 将列标题,索引,数据分开
>>
{'index': [0, 1, 2],
 'columns': ['a', 'b', 'c'],
 'data': [[0, 1, 2], [3, 4, 5], [6, 7, 8]]}


# 4、'records'
df_b.to_dict('records')  # 外层列表,内层是列标题为键值的列表
>>
[{'a': 0, 'b': 1, 'c': 2}, {'a': 3, 'b': 4, 'c': 5}, {'a': 6, 'b': 7, 'c': 8}]


# 5、'index'
df_b.to_dict('index')  # 与参数1相反:索引作为外层dict键值,列标题作为内层dict键值
>>
{0: {'a': 0, 'b': 1, 'c': 2}, 1: {'a': 3, 'b': 4, 'c': 5}, 2: {'a': 6, 'b': 7, 'c': 8}}

免责声明:文章转载自《pandas的DataFrame与python的dict字典之间的相互转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用 docker 快速安装 oracle 11gQMultiMap下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vue生命周期钩子---3

vue生命周期流程图:4张图 : 生命周期的解析和应用: Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。通俗说就是 Vue 实例从创建到销毁的过程,就是生命周期。 beforecreate : 完成实例初始化,初始化非响应式变量this指向创建的...

python之路 django基础

Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。 一、基本配置 1、创建Django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质...

Beeline里面执行hive脚本 函数nvl2()与replace()报错

Beeline里面执行hive脚本函数nvl2()与replace()报错 写脚本的时候是在impala里面执行的,都正常,但是转换为调度的时候是在beeline里面执行的 就会有问题了. 详情如下: replace函数: (去掉字符串里面所有空格) select replace(' hell o wor d ',' ',''); impala执行命令:...

id 自增------删除数据后恢复到删除前自增id

删除数据后,执行下面语句:      ALTER TBALE TableName AUTO_INCREMENT=1 mysql删除比较 一、DROP   drop  table tablename     绝招:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表 二、TRUNCATE   truncate tabl...

Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

原文:http://czjxdm.iteye.com/blog/466948 Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法 博客分类:技术文章 OracleSQL  怎么合并多行记录的字符串,一直是oracle新手喜欢问的SQL问题之一,关于这个问题的帖子我看过不下30个了,现在就对这个问题,进行一个总结。    什么是合并多...

python+selenium2自动化------quit()和close()区别

区别: driver.quit():关闭整个浏览器 driver.close():关闭当前所在的句柄窗口 示例代码: from selenium import webdriver from time import sleep class Demo1(): def __init__(self): self.driver = webd...