【问题标题】:Joining or merging two DataFrames based on index and column value根据索引和列值连接或合并两个 DataFrame
【发布时间】:2022-01-12 17:33:29
【问题描述】:

我有两个 DataFrames 如下:

df1 = pd.DataFrame({'Group1': [0.5,5,3], 'Group2' : [2,.06,0.9]}, index=['Dan','Max','Joe'])
df2 = pd.DataFrame({'Name' : ['Joe','Max'], 'Team' : ['Group2','Group1']})

我的目标是为考虑到“团队”列的人的姓名获得正确的值。

所以结果应该是这样的:

我尝试了合并但失败了,因为我不知道如何在这些条件下合并。

在 Python 中实现我的目标的最佳方式是什么?

【问题讨论】:

标签: python pandas dataframe merge


【解决方案1】:

您可以取消堆叠df1,重置其索引,重命名列并合并NameTeam

out = (df1.unstack()
       .reset_index()
       .rename({'level_0':'Team', 'level_1':'Name', 0:'Value'}, axis=1)
       .merge(df2, on=['Name','Team']))

输出:

     Team Name    0
0  Group1  Max  5.0
1  Group2  Joe  0.9

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 2022-07-28
    • 2015-10-28
    • 2021-06-20
    • 2012-02-11
    • 2021-12-13
    相关资源
    最近更新 更多