如何将一个数据框映射到另一个(python熊猫)?

永远好奇

给定这两个数据框,如何获得预期的输出数据框?很长的路要走,就是用循环遍历数据框的行,iloc然后map在转换df2为a之后使用该函数将dictx和y映射为其分数。

这似乎很乏味,并且需要花费很长时间才能在大型数据帧上运行。我希望有一个更清洁的解决方案。

df1:

ID    A    B    C
1     x    x    y
2     y    x    y
3     x    y    y

df2:

ID    score_x    score_y
1          20         30
2          15         17
3          18         22

输出:

ID    A     B     C
1     20    20    30
2     17    15    17
3     18    22    22

注意:数据框将有许多列,并且类别将不止x和y(可能在20个类别的区域中)。

谢谢!

斯蒂夫

使用口罩

df1.set_index('ID', inplace=True)
df2.set_index('ID', inplace=True)

df1.mask(df1=='x',df2['score_x'],axis=0).mask(df1=='y',df2['score_y'],axis=0)

结果:

     A   B   C
ID            
1   20  20  30
2   17  15  17
3   18  22  22

如果有很多列,并且它们都以相同的方式命名,则可以使用类似的方法:

for e in df2.columns.str.split('_').str[-1]:
     df1.mask(df1==e, df2['score_'+e], axis=0, inplace=True)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫,将一个数据框映射到另一个?

熊猫:如何将一个数据框的值映射到另一个数据框?

如何将值从另一个数据框映射到另一个数据框的标头

如何将一个数据框的单列中的值映射到另一个数据框的两列并提取映射的值?

熊猫-将值从一个数据框映射到另一个

如何将数据框中的列映射到另一个数据框中的两个不同列并检索映射的项目?

将数据框列映射到另一个数据框

如何使用非唯一列将具有求和值的熊猫Groupby数据框映射到另一个数据框

如何将熊猫系列元素传递给另一个数据框

如何将一个数据框中的一列字符串值映射到另一个数据框中的另一列?

将行项映射到另一个数据框的固定列集?

Python-groupby sum映射到另一个数据框

JPA:如何将某些实体映射到另一个数据库实例的不同架构?

在熊猫中将索引值从一个数据框映射到另一个数据框

如何将日期从一个数据框插入另一个数据框?

如何将一个数据框附加到另一个数据框?

将一个数据框中的列表中的值映射到另一个数据框中的唯一值

如何将一个可观察对象映射到另一个

如何将一个对象映射到另一个对象?

将一个数据框中的列值映射到另一个数据框的索引并提取值

如何将一个熊猫数据框中的所有小时值与另一个数据框中的年值相乘?

如何在Python中用另一个数据框引用一个熊猫数据框?

如何计算一个数据框中分类出现的数量并映射到另一个数据框中?

如何将对象映射中的数组映射到另一个数组

python-如何将整数数组映射到另一个整数

如何将字典映射到另一个字典Python

熊猫:如何将多个列值与另一个数据框匹配并生成输出

如何将另一个数据框添加到熊猫hdf5

如何将列表列与熊猫中另一个数据框中的列匹配?