正在将dataframe中的嵌套列表列更改为字典?

2024-05-28 23:15:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题有两个:

我有一个熊猫数据框,其中一列是一个嵌套列表,格式如下:

[['linkedin', '...'], ['country', '...'], ['location', 'United Kingdom London London'], ['city', 'London'], ['state', 'London']...]

我想把列中的每一个条目都改成字典,这样我就可以用键访问条目了:

{'linkedin': '...', 'country': 'United Kingdom', 'location': 'United Kingdom London London', 'city': 'London', 'state': 'London'..}

虽然对单个条目使用dict进行类型转换似乎是完全可行的,但实际上我很难对所有列条目执行此操作。例如,我尝试了以下方法,以及For循环,但遇到了困难:

df['graphResults']=df['graphResults'].astype(dict)

df['graphResults']=dict(df['graphResults'])

for(x in range(0,df.shape[0])):
    df.graphResults[x] = dict(df.graphResults[x])

这是怎么做到的?你知道吗

其次,在我实现了这一点之后,我想实际获取一些字段,并将它们作为列添加到dataframe中。有没有一个简单的方法?你知道吗


Tags: 数据方法citydf列表条目locationcountry
3条回答

移动我的评论作为答案。在graphResults上使用apply转换为dict。根据这些值,您可以创建一个新的DataFrame并与原始值联接。你知道吗

df.join(pd.DataFrame.from_records(df['graphResults'].apply(dict).values))

要仅选择某些字段,可以执行以下操作:

df.join(pd.DataFrame.from_records(df['graphResults'].apply(dict).values)[['country', 'location']])

上面只会添加locationcountry字段。你知道吗

比如:

l = [['linkedin', '...'], ['country', '...'], ['location', 'United Kingdom London London'], \
     ['city', 'London'], ['state', 'London']]

d = {i[0]:i[1:] for i in l}

什么?你知道吗

好吧,字典部分我可以做到:

data = [['linkedin', '...'], ['country', '...'],['location', 'United Kingdom London London'], ['city', 'London'], ['state', 'London']]
new_dict = {}
for combination in data:
    new_dict[combination[0]] = combination[1]

相关问题 更多 >

    热门问题