将列表转换为 DataFrame 并在 DataFrame 列中拆分嵌套字典 - Python 3.6

Posted

技术标签:

【中文标题】将列表转换为 DataFrame 并在 DataFrame 列中拆分嵌套字典 - Python 3.6【英文标题】:Convert List to DataFrame and Split nested dictionary inside DataFrame column - Python 3.6 【发布时间】:2019-03-03 11:24:22 【问题描述】:

我想将 List 转换为 DataFrame 并在 DataFrame 列中拆分嵌套字典,下面是我的代码。

import pandas

d = ["key":1000000, "name":"Aelf", "level":0, "hasData":"true", "fields":"id":"elf"]
pd.DataFrame(d)

我想将“字段”拆分为新列“id”

key name    level   hasData fields  id
1000000 Aelf    0   true    'id': 'elf'   elf

【问题讨论】:

【参考方案1】:

使用concat

pd.concat([df,df.fields.apply(pd.Series)],axis=1)
Out[308]: 
          fields hasData      key  level  name   id
0  'id': 'elf'    true  1000000      0  Aelf  elf

【讨论】:

【参考方案2】:

您可以将joinpop + tolist 一起使用:

d = ["key":1000000, "name":"Aelf", "level":0, "hasData":"true", "fields":"id":"elf",
     "key":2000000, "name":"Cdaf", "level":1, "hasData":"false", "fields":"id":"deer"]
df = pd.DataFrame(d)

res = df.join(pd.DataFrame(df.pop('fields').tolist()))

结果:

  hasData      key  level  name    id
0    true  1000000      0  Aelf   elf
1   false  2000000      1  Cdaf  deer

【讨论】:

以上是关于将列表转换为 DataFrame 并在 DataFrame 列中拆分嵌套字典 - Python 3.6的主要内容,如果未能解决你的问题,请参考以下文章