【发布时间】:2019-09-12 03:01:31
【问题描述】:
我有两个数据框,其中一个数据框作为参考表,另一个包含实际值。
>>> reference_table
MinRange MaxRange Multiplier Group
0 10 30 2 A
1 10 40 4 B
2 10 14 10 C
3 15 19 8 C
4 20 24 6 C
>>> df2
Group Element Value
0 A 15 7
1 B 37 8
2 C 12 9
3 C 23 10
在这里,我想在data数据框中创建一个新列Updated Value如下-
>>> data
Group Element Value Updated Value
0 A 15 7 14
1 B 37 8 32
2 C 12 9 90
3 C 23 10 60
更新值创建如下 -
第 1 行:Element=15 & Group=A,位于 A 组参考表的 MinRange 和 MaxRange 中。因此,Updated Value = Value*Multiplier = 7*2 = 14
第 2 行:Element=37 & Group=B,位于 Group B 参考表的 MinRange 和 MaxRange 中。因此,Updated Value = Value*Multiplier = 8*4 = 32
第 3 行:Element=12 & Group=C,位于 Group C(索引 2)的参考表的 MinRange(10) 和 MaxRange(14) 中。因此,更新值 = 值*乘数 = 9*10 = 90
第 4 行:Element=23 & Group=C,位于 Group C(索引 4)的参考表的 MinRange(10) 和 MaxRange(14) 中。因此,更新值 = 值*乘数 = 10*6 = 60
如何使用 pandas 创建这样的列?我尝试了几种方法,但都没有奏效。很高兴被指出任何参考或类似问题。
【问题讨论】:
-
我已经编辑了@ScottBoston 的问题