pandas.to_json&to_dict&from_json&from_dict解读

pandas 中的to_dict 可以对DataFrame类型的数据进行转换 
可以选择六种的转换类型,分别对应于参数 ‘dict’, ‘list’, ‘series’, ‘split’, ‘records’, ‘index’

params:
orient : str {‘dict’, ‘list’, ‘series’, ‘split’, ‘records’, ‘index’} Determines the type of the values of the dictionary. ‘dict’ (default) : dict like {column
-> {index -> value}} ‘list’ : dict like {column -> [values]} ‘series’ : dict like {column -> Series(values)} ‘split’ : dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]} ‘records’ : list like [{column -> value}, … , {column -> value}] ‘index’ : dict like {index -> {column -> value}} Abbreviations are allowed. s indicates series and sp indicates split. into : class, default dict The collections.abc.Mapping subclass used for all Mappings in the return value. Can be the actual class or an empty instance of the mapping type you want.
If you want a collections.defaultdict, you must pass it initialized.

return dict, list
or collections.abc.Mapping Return a collections.abc.Mapping object representing the DataFrame. The resulting transformation depends on the orient parameter.

1、选择参数orient=’dict’

dict也是默认的参数,下面的data数据类型为DataFrame结构, 会形成 {column -> {index -> value}}这样的结构的字典,可以看成是一种双重字典结构
- 单独提取每列的值及其索引,然后组合成一个字典
- 再将上述的列属性作为关键字(key),值(values)为上述的字典

查询方式为 :data_dict[key1][key2]
- data_dict 为参数选择orient=’dict’时的数据名
- key1 为列属性的键值(外层)
- key2 为内层字典对应的键值

2、当关键字orient=’ list’ 时

和1中比较相似,只不过内层变成了一个列表,结构为{column -> [values]}
查询方式为: data_list[keys][index]

data_list 为关键字orient=’list’ 时对应的数据名
keys 为列属性的键值,如本例中的’age’ , ‘embarked’等
index 为整型索引,从0开始到最后

3、关键字参数orient=’series’

形成结构{column -> Series(values)}
调用格式为:data_series[key1][key2]或data_dict[key1]

data_series 为数据对应的名字
key1 为列属性的键值,如本例中的’age’ , ‘embarked’等
key2 使用数据原始的索引(可选)

4、关键字参数orient=’split’

形成{index -> [index], columns -> [columns], data -> [values]}的结构,是将数据、索引、属性名单独脱离出来构成字典
调用方式有 data_split[‘index’],data_split[‘data’],data_split[‘columns’]

5、当关键字orient=’records’ 时 

形成[{column -> value}, … , {column -> value}]的结构 
整体构成一个列表,内层是将原始数据的每行提取出来形成字典 
调用格式为data_records[index][key1]

6、当关键字orient=’index’ 时 

形成{index -> {column -> value}}的结构,调用格式正好和’dict’ 对应的反过来

原文地址:https://www.cnblogs.com/wqbin/p/11839900.html