pandas读取各种类型的json文本文件

pandas用read_json读取json文件

pandas.read_json语法如下

pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=True, 
convert_axes=True, convert_dates=True, keep_default_dates=True, 
numpy=False, precise_float=False, date_unit=None, encoding=None, 
lines=False, chunksize=None, compression='infer')

其中,orient是用来指定传入的json字符串类型

orient的设置值

1.split,用来读取有索引,由列字段和数据构成的json格式:

{index: [index], columns: [columns], data: [values]}
index作为索引, columns作为列名结合data的values组成一个dataframe

s = "{'index': [1, 2, 3], 'columns: ['a', 'b'], 'data':[[1, 3], [2, 8], [3, 9]]}"
pd.read_json(s, orient='split')

2.records,用来读取成员为字典的列表:

[{column1: value1, column2: value2}, …, {column1: value1, column2: value2}]
键column为列名,value为列所对应的值,每一个字典成员就构成了dataframe的一行数据

s = "[{'a': 1, 'b': 3}, {'a': 2, 'b': 6}, {'a': 3, 'b': 9}]"
pd.read_json(s, orient='records')

3.index,用来读取以索引为key,以列字段构成的字典为键值的json格式:

将key作为dataframe的index,字典中的键和键值构成dataframe的data
{index1: {column1: value1, column2: value2}, index2: {column1: value1, column2: value2}}

s = "{'0': {'a': 1, 'b': 2}, '1': {'a': 9, 'b': 11}}"
pd.read_json(s, orient='index')

4.columns,处理以列为键,对应一个值字典的对象:

{column1:{index1: value1, index2: value1}, column2:{index1: value2, index2: value2}}
将column作为列名,index作为索引,value为列的数据,组成一个dataframe

s = "{'a': {'0': 1, '1': 9}, 'b': {'0': 2, '1': 11}}"
pd.read_json(s, orient='columns'

5.values,处理一个嵌套的列表,里面的成员也是列表:

[[value1, value2], …, [value1, value2]]

s = "[['a', 1], ['b', 2]]"
pd.read_json(s, orient='values')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章