我刚开始学习Pandas。我有两个 Dataframe 。第一个是
val num
0 1 0
1 2 1
2 3 2
3 4 3
4 5 4
第二个是
0 1 2 3
0 1 2 3 4
1 5 3 2 2
2 2 5 3 2
我想改变我的第二个dataframe,以便将dataframe中存在的值与第一个dataframe中的列val进行比较,并且每个相同的值都需要在dataframe 1的num列中存在的值中进行更改。这意味着最后我需要获得以下dataframe:
0 1 2 3
0 0 1 2 3
1 4 2 1 1
2 1 4 2 1
我怎么在Pandas中做到这一点?
2条答案
按热度按时间j13ufse21#
您可以使用DataFrame.replace()来执行以下操作:
说明:
1.第一步是将第一个DataFrame的
val
列设置为索引。这将改变第三步中执行匹配的方式。1.将第一个DataFrame转换为一个Series,方法是将索引和
num
列作为子集。它看起来像这样:1.接下来,使用DataFrame.replace()在第二个DataFrame中进行替换。它从第二个DataFrame中查找每个值,在Series中找到匹配的索引,并将其替换为Series中的值。
完全可再现的示例:
siv3szwd2#
创建Map
dict
,然后创建replace