在字典中找到一个最大值,并将所有值除以该值

2024-03-29 08:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本有100把钥匙的字典。它看起来像这样:

{'key1': [0.0, 0.0, 0.95, 0.06, 0.01],'key2': [0.0, 0.1, 0.95,
0.26, 0.11].....'key100': [0.2, 0.0, 0.23, 0.16, 0.21]}

我希望找到最大值(在上面的例子中是0.95),并用这个值除以所有键的所有值。基本上我会将字典转换为最大值的一个百分比。如果有人能告诉我如何在熊猫/Python中最好地做到这一点,我将非常感激。你知道吗

谢谢你。你知道吗


Tags: 字典例子钥匙百分比key2key1我会key100
3条回答

快速写入但“愚蠢”的方法是,如果遇到更高的值,只需遍历dict并更新sentinel值:

maxval = 0.0
for key in d:
    for val in d[key]:
        if val > maxval:
            maxval = val


for key in d:
    d[key] = [val / maxval for val in d[key]]

试试这个:

# First, find the global maximum value
max_val = 0.0
for key, value_list in d.iteritems():
    local_max = max(value_list)
    if local_max > max_val:
        max_val = local_max

# Then divide every item in every value list by the global maximum
new_dict = {}
for key, value_list in d.iteritems():
    new_dict[key] = [x/max_val for x in value_list]

下面是如何处理熊猫。你知道吗

import pandas as pd

data = {'key1': [0.0, 0.0, 0.95, 0.06, 0.01],'key2': [0.0, 0.1, 0.95,
0.26, 0.11], 'key100': [0.2, 0.0, 0.23, 0.16, 0.21]}

df = pd.DataFrame(data)

max_value = df.max().max()

df /= max_value

相关问题 更多 >