更新dataframe中具有字典值的列

2024-06-07 17:35:07 发布

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

我在dataframe中有一个名为“hierarchy”的列,它具有字典值

{'5ff70ec16e8fa91c6462a47f': {'title': 'TP Layer', 'joinBy': '4a850c44-0107-48fb-a5e3-14a8e4cd44ab'}}
{'5fff3c3318d71e001221cc5b': {'title': 'Legal Entities', 'joinBy': '20e49f0a-4dca-43a3-8a5c-2ef1607c5e5f'}}
{'5ff76134930ddee5814becba': {'title': 'Line Item', 'joinBy': '5a8295e8-e006-4a6a-98b9-64587bb679c6'}}
nan
nan
nan
{'5ff74bc8930ddef3be4becb5': {'title': 'Relationship', 'joinBy': 'ea307ebb-1b40-4c6b-b922-b7d6d6920e03'}}
nan
nan
{'600062d318d71e001221cc5d': {'title': 'ProjeX V2 Periods', 'joinBy': '1e09f4d0-2736-4a38-a122-ac8e7ee35367'}}

我想提取title和joinBy,并为dataframe中的title和joinBy创建单独的列,因此,结果应该如下所示

title                           joinBy
TP Layer                        4a850c44-0107-48fb-a5e3-14a8e4cd44ab
Legal Entities                  20e49f0a-4dca-43a3-8a5c-2ef1607c5e5f
nan                             nan

有人知道怎么做吗


Tags: layerdataframe字典hierarchytitlelinenanitem
1条回答
网友
1楼 · 发布于 2024-06-07 17:35:07

df引用您文章中描述的输入数据帧时,以下内容将向您的数据帧添加新列,并使用从"hierarchy"列中提取的"title""joinBy"值填充它们:

import numpy as np
import pandas as pd

for i, entry in enumerate(df["hierarchy"]):
    if type(entry) == dict:
        k = list(entry.keys())[0]
        df.at[i,"title"] = entry[k]["title"]
        df.at[i,"joinBy"] = entry[k]["joinBy"]
    else:
        df.at[i,"title"] = np.nan
        df.at[i,"joinBy"] = np.nan

请注意,我在代码片段中使用了np.nan。如果希望在创建的数据帧中使用不同的nan,则必须相应地修改代码

相关问题 更多 >

    热门问题