Pandas 读取Eexcel - 间隔N行,读取某列数据
间隔N行,读取某列数据
import pandas as pd
def read_vertical(sheet_name, col_idx, gap):
"""
竖着读数据,
:param sheet_name: 第几个 sheet
:param col_idx: 第几列,从 0 开始
:param step: 间隔
:return:
"""
# header=None 没有标题行
df = pd.read_excel("111.xlsx", sheet_name=sheet_name, header=None)
step = gap + 1
total = 0
# 如果3行3行的比,再在上面套一层 for
for row in range(0, step * 3 + 1, step): # range(1, 4) = 1~3 逗号右边是小于,所以 < 4 ,是 1~3,不包括4
if row == 0:
continue # 跳过第1行
# print(row)
val = df.iloc[row, col_idx] # 指定行,列
if val != 1:
print("第%s行 => %s,不等于 1 所以跳过。" % (row + 1, val))
break # 三行数据,有一个不等于 1 就跳过
total = total + 1
print("第%s行 => %s" % (row + 1, val))
# 三行数据都 =1
if (total == 3):
# 'a' 追加到文件中, 'w' 以前的数据不要了,每次都重写
write_val = df.iloc[0, col_idx]
print("达到连续三个1,将值写文件%s" % write_val)
with open('output.txt', 'a', encoding='utf-8') as json_file:
json_file.write(str(write_val) + " ") # 把最上面的值写到文件中
else:
print("没达到三个1 不写文件")
if __name__ == '__main__':
for col in range(1, 2):
print('\r\n' + '=' * 10 + ' 第' + str(col) + '列')
for gap in range(0, 6):
print('\r\n' + '*' * 10 + ' 间隔' + str(gap))
read_vertical(0, col, gap) # 不间隔
本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/17767784.html