如何用从一个数据帧到另一个数据帧的值替换字符串
Posted
技术标签:
【中文标题】如何用从一个数据帧到另一个数据帧的值替换字符串【英文标题】: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], )
我想要的输出应该是这样的
【问题讨论】:
【参考方案1】:您可以将df.stack()
与Series.map
和df.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,正是我想要的!!以上是关于如何用从一个数据帧到另一个数据帧的值替换字符串的主要内容,如果未能解决你的问题,请参考以下文章