需要对50个港口进行研究,研究材料是一个年度总表excel,关注其中的sheet——data2017,港口名称分布在AB两列,每次筛选一个港口,找出港口名称所在行,并输出该行至新的excel,重复50次,但数据要在新sheet里相连
#!/usr/bin/python
from openpyxl import load_workbook
import pandas as pd
def find_row(num_value,file_name):
"""
Returns the row number based on the value of the specified cell
"""
demo_df = pd.read_excel(file_name)
for indexs in demo_df.index:
for i in range(len(demo_df.loc[indexs].values)):
if (str(demo_df.loc[indexs].values[i]) == num_value):
row = str(indexs+2).rstrip('L')
return row
#确定行号
wb = load_workbook('C:/Users/JYB/Desktop/data2017-船公司航线数据.xlsx')
sheet = wb['data2017']
NAME = ['鹿特丹'] #50个港口
for r in range(1, sheet.max_row+1):
for c in range(1, sheet.max_column+1):
v = sheet.cell(row=r, column=c)
for name in NAME:
if v == name:
row_num = find_row(v,'C:/Users/JYB/Desktop/data2017-船公司航线数据.xlsx')
print(row_num)
未完成,结果是查询到第一个鹿特丹后就不断重复其所在行。
需要对50个港口进行研究,研究材料是一个年度总表excel,关注其中的sheet——data2017,港口名称分布在AB两列,每次筛选一个港口,找出港口名称所在行,并输出该行至新的excel,重复50次,但数据要在新sheet里相连
代码没看出循环有问题,
可以这样测试一下,是否完全遍历了数据。
NAME = ['鹿特丹'] #50个港口
for r in range(1, sheet.max_row+1):
for c in range(1, sheet.max_column+1):
v = sheet.cell(row=r, column=c).value
for name_item in NAME:
if v == name_item :
print(r,c,v)