jaysonteng

一、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)
>>
输出:

 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转换为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}}

分类:

技术点:

相关文章: