我有一个对象列表,我想在已知的最小值和最大值之间缩放值。因此,如果已知的最小值和最大值为100,800,我希望结果如下:
{'cat' : 1, 'dog' : 3, 'chimp' : 8} -> {'cat' : 100, 'dog' : 300, 'chimp' : 800}
Python / pandas实现如下所示
def scale_size(old_value):
if numbers_df['raw_size'].max() == 1:
return 150
old_value = float(old_value)
old_max = numbers_df['raw_size'].max()
old_min = numbers_df['raw_size'].min()
new_max = 150
new_min = 20
old_range = old_max - old_min
new_range = new_max - new_min
new_value = (((old_value - old_min) * new_range) / old_range) + new_min
return int(new_value)
答案 0 :(得分:1)
您可以使用所需范围和给定范围的最大减去最小值来计算系数,并为对象中的每个值计算新值。
> plot(df[,3])
答案 1 :(得分:1)
您应该创建一个函数来将值从一个范围映射到另一个范围。为此,您应该执行以下操作:
"Module '"project/node_modules/@angular/core/index"' has no exported member 'Renderer2'.
)(1,8)
)我确信有更高效和/或更清晰的方法来实现这一目标,但这可能是您想要做的事情的一个不错的起点。另外,理论上您可以通过查找键值对中的最小值和最大值来计算当前范围的最小值和最大值,但这可能不适用于所有情况。
(100,800)