大熊猫将列映射到基于序列的另一个数据框

时间:2020-06-15 10:59:08

标签: python pandas dataframe mapping

我有2个数据框,我需要能够对两个数据框上的用户进行分类。我想到的最简单的方法是将它们组合并运行过滤器以获取分类的用户。我遇到的问题是实际的合并。我必须假设索引在两个数据帧上都不匹配。

样本数据:

df1 = pd.DataFrame([{ "user" : "ewrgw4t",
         "var1" : "wgw3tg"},
       { "user" : "wegrer",
         "var1" : "khjnjnb"}])

df2 = pd.DataFrame([{ "user" : "ewrgw4t",
         "var2" : "wegwhq"},
       { "user" : "wegrer",
         "var2" : "fbdbda"}])

我尝试了df3 = df1['user'].map(df2['user'])

但是它返回了一系列NaNs

我的预期结果:

df3 = [{"user" : "ewrgw4t",
        "var1" : "wgw3tg",
        "var2" : "wegwhq"},
       {"user" : "wegrer",
        "var1" : "khjnjnb",
        "var2" : "fbdbda"}]

1 个答案:

答案 0 :(得分:1)

您可以使用

pd.merge(df1, df2, on='user').to_dict(orient='records')

输出:

[{'user': 'ewrgw4t', 'var1': 'wgw3tg', 'var2': 'wegwhq'},
 {'user': 'wegrer', 'var1': 'khjnjnb', 'var2': 'fbdbda'}]