【问题标题】:How to replace string with values from one datafame to another dataframe如何用从一个数据帧到另一个数据帧的值替换字符串
【发布时间】:2021-04-27 13:49:04
【问题描述】:

我有两个数据框,在一个数据框(df1)中,每个用户都有字符串值,而在另一个数据框(df2)中,有一个与字符串值关联的值。 我想要一个类似于 df1 的新数据框,但字符串被替换为对应于 df2 的值。让我知道是否存在创建此类新数据框的简单方法? 这是 df1 和 df2 的示例查询

df1 = pd.DataFrame({"user": ["user1", "user2", "user3", "user4"], "p1": ["A", "C", "D", "D"],"p2": ["B", "D", "D", "A"],"p3": ["A", "B", "C", "D"],"p4": ["D", "A", "B", "C"], }, index=[0, 1, 2, 3], )

df2 = pd.DataFrame({"N1": ["A", "B", "C", "D"],"N2": ["1", "2", "5", "6"], }, index=[0, 1, 2, 3], )

我想要的输出应该是这样的

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以将df.stack()Series.mapdf.unstack 一起使用:

    In [95]: df3 = df1.set_index('user').stack().map(df2.set_index('N1')['N2']).unstack()
    
    In [96]: df3
    Out[96]: 
          p1 p2 p3 p4
    user             
    user1  1  2  1  6
    user2  5  6  2  1
    user3  6  6  5  2
    user4  6  1  6  5
    

    【讨论】:

    • 谢谢 Mayank,正是我想要的!!
    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 2016-07-24
    • 2016-12-10
    • 1970-01-01
    • 2021-03-21
    • 2018-01-23
    • 2015-12-19
    • 2019-07-15
    相关资源
    最近更新 更多