Python-使用str()而不是引用引用dataframe列

时间:2019-02-26 16:17:25

标签: python pandas dataframe

我的代码是一个函数,用于计算包含特定颜色的样本中的国家标志的相加概率。它来自DataQuest练习。它只询问三个标记包含红色的可能性,但我想挑战自己并为n和colour写一个函数。

标志是一个数据框。有颜色列。如果有颜色则为1,否则为0。

import numpy as np

def conjunctive_probability(n, colour):
    total_count = flags.shape[0]
    colour_picked = flags[flags[str(colour)] == 1].shape[0]
    p = 0
    probabilities = []

    for p in range(n):
        probability = colour_picked / total_count
        probabilities.append(probability)
        colour_picked -= 1
        total_count -= 1
        p += 1
    return np.prod(np.array(probabilities))

three_red = conjunctive_probability(3, red)

第5行出现错误(colour_picked)。如果我在此处输入颜色,例如:

colour_picked = flags[flags['red'] == 1].shape[0]

有效。

但是我不明白为什么str()不起作用。它给了我

KeyError: '153'

这是红色标记的数量。

1 个答案:

答案 0 :(得分:0)

str()不是问题。关键错误可能表明flags[YOUR_KEY]不存在。在特定错误中,flags[153]不存在,这意味着153不是您的flags字典中的键。我看不到您的帖子中flags的初始化位置。