在python for循环中获取两个单元格之间的差异
我想做的是找出B201和B52单元格之间的差异,并将答案放入D52单元格excel中。然后,我想重复减法公式,直到value1单元格,可以是任何一行。我在b列中的值是timestamp。这就是为什么我用datetime在python for循环中获取两个单元格之间的差异,python,python-3.x,pandas,openpyxl,Python,Python 3.x,Pandas,Openpyxl,我想做的是找出B201和B52单元格之间的差异,并将答案放入D52单元格excel中。然后,我想重复减法公式,直到value1单元格,可以是任何一行。我在b列中的值是timestamp。这就是为什么我用datetime filename1 ="C:\\Users\\hhh.xlsx" wb2 = xl.load_workbook(filename1) ws2 = wb2.active for i in range(52,value1) and j in range (201,
filename1 ="C:\\Users\\hhh.xlsx"
wb2 = xl.load_workbook(filename1)
ws2 = wb2.active
for i in range(52,value1) and j in range (201, int(value2)):
ws2.cell(row=i, column=4).value = datetime.datetime(float(ws2.cell(row=j, column=2).value)) - datetime.datetime(float(ws2.cell(row=i, column=2).value))
有人能纠正我吗?提前感谢只需使用一个从
0
到value1
的循环,并将其添加到52
和201
中,即可获得应减去的相应行
for n in range(value1):
i = 52 + n
j = 201 + n
cell1 = ws2.cell(row=j, column=2).value
cell2 = ws2.cell(row=i, column=2).value
if cell1 and cell2: # Make sure both cells are filled in
ws2.cell(row=i, column=4).value = float(cell1) - float(cell2)
什么是
value2
?这被标记为pandas,但在本例中您没有使用pandas。如果你要使用熊猫,那么我会考虑使用<代码> .SHIFT()/<代码>而不是循环。例如:df['Col D']=df['Col B']-df.shift(149)['Col B']
非常感谢您的帮助。如果我运行上面的代码,我会得到“TypeError:integer-ArgumentExpected,get-float”。如果我删除datetime.datetime并只使用浮点,我会得到“TypeError:float()参数必须是字符串或数字,而不是‘NoneType’”。请帮助我这是一个完全无关的问题,与循环无关。你确定所有单元格都已填充吗?如果没有,您需要在尝试使用它们之前进行检查。我已更新了答案以添加检查并删除不适当的datetime
呼叫。