excel Python Pandas从A列和B列而不是列名读取

rqdpfwrv  于 2022-11-26  发布在  Python
关注(0)|答案(2)|浏览(224)

我是相对较新的Python,我有一个Excel文件,我可以阅读,列A“网址”和列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"

感谢任何支持!

oxalkeyp

oxalkeyp1#

您可以将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)
sgtfey8w

sgtfey8w2#

如果你的文件中没有列名panda给每一列赋值比如Unnamed: 0,你可以检查py打印df.info或者df.head()
你可以在从你的文件中阅读时指定列名,这样你的df总是有列名:

df.rename( columns={"Unnamed: 0" :'url', Unnamed: 0: 'name'}, inplace=True )

那你就可以走了。

相关问题