为什么“输入”连接器给我错误的值?

时间:2019-07-30 03:30:19

标签: python pandas

我正在使用熊猫做一个简单的数据分析,我想检查正在绘制的圆数是否在数据中。变量数据是一个熊猫数据框,这里我只是使用“ DayCount”列。完整的csv文件和python脚本可见here


    cont = 1

    for i in range(1, 21):
        for j in range(1, 19):
            if cont in data['DayCount']:
                p = mpatches.Circle((i, j), 0.5, color='#01770b')
            else:
                p = mpatches.Circle((i, j), 0.5)
            ax.add_patch(p)
            cont += 1

if条件仅适用于大数(最小值为209),但是它是由小数触发的,具体是:1到49。因此,它为1到49的圆圈上色,但实际上不是在数据中。

3 个答案:

答案 0 :(得分:0)

您需要将valuesin一起使用,这应该是您的if条件:

if cont in data['DayCount'].values

答案 1 :(得分:0)

将data ['Day Count']转换为列表,否则它将与数据帧切片的索引混淆:

for i in range(1, 21):
    for j in range(1, 19):
        if cont in list(data['DayCount']):
            print(cont)
            p = mpatches.Circle((i, j), 0.5, color='#01770b')
        else:
            p = mpatches.Circle((i, j), 0.5)
        ax.add_patch(p)
        cont += 1

答案 2 :(得分:-1)

您必须给条件以评估if语句。例如if cont in data['DayCount'] > 209if cont in data['DayCount'] < 209这样的例子。通过现在给出的方式,“如果”不检查任何内容。