Python Pandas-将df中的列转换为另一个df中存储的ID

Python Pandas-将df中的列转换为另一个df中存储的ID,python,pandas,Python,Pandas,我一直在尝试创建一个包含字符ID和字符母亲ID(如果有)的数据帧。我使用的数据是GoT字符,原始df可以在下面看到 我已经创建了一个数据框,存储所有字符的名称和他们的母亲的名字(如果他们有一个),但我寻找的字符和母亲的ID不是他们的名字 我曾尝试使用合并来解决这个问题,但到目前为止还无法实现 如果您有任何建议,我将不胜感激。我已尝试使用两行数据帧重现您所要求的内容: dataframe1 = pd.DataFrame({'ID': ['C0000', 'Z000'], 'name': ['V

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

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

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


如果您有任何建议,我将不胜感激。

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

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

列名可以删除,您可以根据需要重命名列ID\u x和ID\u y。

欢迎使用Stackoverflow。请改为以文本格式添加,以便我们能够在回答您的问题时复制这些内容。请花点时间阅读