我正在使用熊猫做一个简单的数据分析,我想检查正在绘制的圆数是否在数据中。变量数据是一个熊猫数据框,这里我只是使用“ 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的圆圈上色,但实际上不是在数据中。
答案 0 :(得分:0)
您需要将values
与in
一起使用,这应该是您的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'] > 209
或if cont in data['DayCount'] < 209
这样的例子。通过现在给出的方式,“如果”不检查任何内容。