将字典列表转换为Dataframe

Ars*_*lam 2 python json dictionary list pandas

我正面临一个基本问题,即转换从使用json格式的文本解析列获得的字典列表.以下是数据的简要快照:

[{u'PAGE TYPE': u'used-serp.model.brand.city'},
 {u'BODY TYPE': u'MPV Cars',
  u'ENGINE CAPACITY': u'1461',
  u'FUEL TYPE': u' Diesel',
  u'MODEL NAME': u'Renault Lodgy',
  u'OEM NAME': u'Renault',
  u'PAGE TYPE': u'New-ModelPage.OverviewTab'},
 {u'PAGE TYPE': u'used-serp.brand.city'},
 {u'BODY TYPE': u'SUV Cars',
  u'ENGINE CAPACITY': u'2477',
  u'FUEL TYPE': u' Diesel',
  u'MODEL NAME': u'Mitsubishi Pajero',
  u'OEM NAME': u'Mitsubishi',
  u'PAGE TYPE': u'New-ModelPage.OverviewTab'},
 {u'BODY TYPE': u'Hatchback Cars',
  u'ENGINE CAPACITY': u'1198',
  u'FUEL TYPE': u' Petrol , Diesel',
  u'MODEL NAME': u'Volkswagen Polo',
  u'OEM NAME': u'Volkswagen',
  u'PAGE TYPE': u'New-ModelPage.GalleryTab'},
Run Code Online (Sandbox Code Playgroud)

此外,我用来解析的代码详述如下:

stdf_noncookie = []
stdf_noncookiejson = []

for index, row in df_noncookie.iterrows():
    try:
        loop_data = json.loads(row['attributes'])
        stdf_noncookie.append(loop_data)
    except ValueError:
        loop_nondata = row['attributes']
        stdf_noncookiejson.append(loop_nondata)
Run Code Online (Sandbox Code Playgroud)

stdf_noncookie是我想要转换成pandas数据帧的字典列表.'attributes'是包含json格式文本的列.我试图从这个链接中学到一些东西,但这无法解决我的问题.将字典列表转换为熊猫数据框的任何建议/提示都会有所帮助.

Cra*_*ack 6

要将您的dicts列表转换为pandas数据帧,请使用以下命令:

stdf_noncookiejson = pd.DataFrame.from_records(data)
Run Code Online (Sandbox Code Playgroud)

pandas.DataFrame.from_records

DataFrame.from_records (data,index = None,exclude = None,columns = None,coerce_float = False,nrows = None)

您可以在读取时设置索引,命名列等

如果你正在使用json,你也可以使用该read_json方法

stdf_noncookiejson = pd.read_json(data)
Run Code Online (Sandbox Code Playgroud)

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,线=假)