1986年以降の馬データを対象とする検索コードを書いてみました。
出力されたindexとhorseIDの番号が1つずれていますがそういう仕様です。
今回は部分一致で実行しましたが、完全一致にしないと実用的ではないでしょう。
import glob,csv,re
import pandas as pd
print('検索したい馬名を入力してください')
name = input()
horseID_l = list()
for year in range(1986,2019 +1):
namefile = f'/horse_racing/horse_list/horse{year}.csv'
df = pd.read_csv(namefile,encoding="shift_jis")
# 各行の馬名セルに検索馬名を含む場合にTrueとする縦向き配列を作成(部分一致)
b_array = df[df.columns[1]].str.contains(name)
# ブール値の横向き配列として取り出しリスト化
b_array_v = b_array.values.tolist()
# Trueのインデックス値を算出しhorseIDを取得
try:
i = b_array_v.index(True)
except:
pass
else:
print(f'year {year} index {i}')
horseID = df.iloc[i,0]
horsename = df.iloc[i,1]
horseID_l.append([year,horseID,horsename])
print(f'{name} {horseID_l}')
--------------------------------------------------
出力
--------------------------------------------------
検索したい馬名を入力してください
ヒシマサル
year 1989 index 8573
year 1999 index 183
year 2014 index 6060
ヒシマサル [[1989, 198908574, '○外ヒシマサル'], [1999, 199900184, '□地ニシネヒシマサル'], [2014, 201405934, 'ヒシマサル']]