我写了一个程序来分析HVAC数据的运行故障。程序通过一组规则提供输入数据,输出是像这样的Pandas数据帧。
从该输出中,我使用此代码遍历每一列,打印列本身的名称,并在其他列中的值为真的任何位置打印索引(日期)中的值:
pos = 0
for column in df:
try:
colname = faults[df.columns[pos]]
print "The fault -" +str (colname)+ "- occurred on:"
except Exception:
pass
try:
print df.loc[df[column] == True, 'Date'].iloc[:]
except TypeError:
pass
print
pos += 1
这个输出看起来像这样。
代码工作正常,但我想稍微更改输出。我想只打印第一个和最后一个真值,以便输出显示类似"错误来自' x'到''"而不是每次出现真值时打印。
复杂的部分是,有时列中可能有多个1组,所以我不能只打印存在真值的第一个和最后一个索引。列可能看起来像(0,0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,0),在这种情况下我会想要它打印"故障发生在这里,这里,这里和这里。"
有没有办法在Pandas数据帧列中打印每个真值组的第一个和最后一个索引?
答案 0 :(得分:0)