在python for循环中获取两个单元格之间的差异

在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,

我想做的是找出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, 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
呼叫。