将Pandas列内的字典拆分为单独的列

时间:2019-07-04 17:43:10

标签: python pandas

我将数据保存在csv中。我正在使用Python查询此数据并将其转换为Pandas DataFrame。我在数据框中有一个名为team_members的列,其中有一个值字典。该列在调用时如下所示:

dt.team_members[1]

输出:

"[{'name': 'LearnFromScratch', 'tier': 'novice tier'}, {'name': 'Scratch', 'tier': 'novice tier'}]"

我试图查看此解释和其他类似内容:

Splitting multiple Dictionaries within a Pandas Column

但是它们不起作用

我想获得一个名为name的列,其中包含团队成员的姓名,另一个包含每个成员的层级。

你能帮我吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以在循环浏览时提取姓名

list(map(lambda x: x.get("name"), dt.team_members[1]))

如果您需要一个新的数据框: 然后按照@vivek的答案:

pd.DataFrame(dt.team_members[1])

答案 1 :(得分:1)

我假设Yes - `/html/body/div/section/div/div/div/div/form/div[3]/div/div/div/ul/li/div[2]/div/div/div[1]` No - `/html/body/div/section/div/div/div/div/form/div[3]/div/div/div/ul/li/div[2]/div/div/div[2]` 的输出是一个列表。
如果是这样,您可以直接传递该列表以创建类似以下内容的数据框:

dt.team_members[1]

答案 2 :(得分:0)

您可以试试这个-

    list = dt.team_member[1]
    li = []
    for x in range(len(list)):
       t = {list[x]['name']:list[x]['tier']}
       li.append(t)
    print(li)

输出为-

    [{'LearnFromScratch': 'novice tier'}, {'Scratch': 'novice tier'}]