Я относительно новичок в python У меня есть файл excel, где я могу прочитать столбец A «URL» и столбец B «имя».
В будущем у столбцов не будет «имени столбца», поэтому мне нужно, чтобы он читал напрямую из столбца A и столбца B и начинал итерацию с ячейки 1.
Я пытался использовать index_col(0), но не могу понять. Это простой скрипт загрузки изображения.
import requests
import pandas as pd
df = pd.read_excel(r'C:\Users\exdata1.xlsx')
for index, row in df.iterrows():
url = row['url']
file_name = url.split('/')
r = requests.get(url)
file_name=(row['name']+".jpeg")
if r.status_code == 200:
with open(file_name, "wb") as f:
f.write(r.content)
print (file_name)
Я попробовал это ниже без какого-либо хорошего результата.
url = row['index_col(0)'] #0 for excel column "A"
file_name=(row['index_col(1)']+".jpeg") #1 for excel Column "B"
Ценю любую поддержку!
Вы можете установить header=None
в качестве аргумента pandas.read_excel и дать имена своим столбцам.
Попробуй это :
import requests
import pandas as pd
df = pd.read_excel(r'C:\Users\exdata1.xlsx', header=None, names=['url', 'name'])
for index, row in df.iterrows():
url = row['url']
file_name = url.split('/')
r = requests.get(url)
file_name=(row['name']+'.jpeg')
if r.status_code == 200:
with open(file_name, 'wb') as f:
f.write(r.content)
print(file_name)
Если в ваших файлах нет имен столбцов, панды присваивают значения каждому столбцу, например Unnamed: 0
, вы можете проверить, что py печатает df.info
или df.head()
вы можете назначать имена столбцов при чтении из вашего файла, чтобы у вас всегда было имя столбца df:
df.rename( columns = {"Unnamed: 0" :'url', Unnamed: 0: 'name'}, inplace=True )
тогда вы можете идти.
row['index_col(0)'] поиск в столбце с именем index_col(0); row[index_col(0)] поиск в столбце 0.