Python可以将df中的列转换为另一个df中存储的ID

2024-06-16 10:41:57 发布

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

我一直在尝试创建一个包含字符ID和字符母亲ID(如果有)的数据帧。我使用的数据是GoT字符,原始df可以在下面看到

dataframe1

我已经创建了一个数据框,存储所有字符的名称和他们的母亲的名字(如果他们有一个),但我寻找的字符和母亲的ID不是他们的名字

dataframe2

我曾尝试使用合并来解决这个问题,但到目前为止还无法实现

任何建议都将不胜感激


Tags: 数据名称iddf名字字符建议got
1条回答
网友
1楼 · 发布于 2024-06-16 10:41:57

我尝试用两行数据帧重现您要求的内容:

dataframe1 = pd.DataFrame({'ID': ['C0000', 'Z000'], 'name': ['Viserys II Targaryen', 'Rhaenira Targaryen'], 'male': [1,0], 'mother': ['Rhaenira Targaryen', np.nan]})

dataframe2 = dataframe1[['name', 'mother']]

然后合并两个数据帧,即dataframe1和dataframe2:

merged_df = dataframe2.merge(dataframe1[['ID', 'name']], how = 'outer', on = 'name')

结果如下:

name                  mother              ID
Viserys II Targaryen  Rhaenira Targaryen  C0000
Rhaenira Targaryen    NaN                 Z0000

然后,我们合并合并的_df和dataframe1:

final = merged_df.merge(dataframe1[['ID', 'name']], how = 'left', left_on = 'mother', right_on = 'name')

最后的结果是:

name_x                mother              ID_x  ID_y  name_y
Viserys II Targaryen  Rhaenira Targaryen  C0000 Z0000 Rhaenira Targaryen
Rhaenira Targaryen    NaN                 Z0000 NaN   NaN

列名_y可以删除,您可以根据需要重命名列ID_x和ID_y

相关问题 更多 >