将列表转换为 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的主要内容,如果未能解决你的问题,请参考以下文章

SparkSQL详解

将 DataFrame 或 Series 列表转换为一个堆叠的 DataFrame(或 Series)

将列表转换为 DataFrame

如何将可变长度列表的 Pandas DataFrame 列(或系列)转换为固定宽度的 DataFrame [重复]

如何将字典列表转换为 Pyspark DataFrame

为啥 list 应该先转换为 RDD 再转换为 Dataframe?有啥方法可以将列表转换为数据框?