df = pd.read_excel("file.xlsx", sheet_name = "Sheet1")
for i in range(0, len(df)):
cnt = 0
while True:
cnt = 1
driver.get(df['urls'][0])
'df' 是一個變數,其中 excel 檔案包含一個標題為 'urls' 的變數,它在一列中包含 4 個 url。
我想使用回圈一一打開它們,但我不確定這是正確的做法。我試圖運行它,但沒有成功。
如果您提供一些有用的提示,我將不勝感激!
uj5u.com熱心網友回復:
看來您還沒有閱讀 pandas 的檔案在此處輸入鏈接描述。在那里你會看到資料框有內置的方法
df = pd.read_excel("file.xlsx", sheet_name = "Sheet1")
for i, row in df.iterrows():
driver.get(row.url)
或者你可以更簡單!
df.apply(lambda row: driver.get(row.url), axis=1)
這會將 lambda 函式應用于整個資料幀中的每一行。
在這里https://wiki.python.org/moin/BeginnersGuide可以找到你需要知道的一切來開始使用 python
uj5u.com熱心網友回復:
為了while True作業,您需要一個結束回圈的條件。我給出的解決方案通常是迭代回圈的有效方法。DataFrames 有自己的迭代器,這些迭代器可能性能更高,但似乎一些基本的 Python 回圈對您有益。
在您的代碼中,您正在執行一個for回圈,其中包含一個while帶有計數器的回圈,但隨后永遠不會在您的 DataFrame 中參考該索引。您可以只使用for沒有回圈的while回圈。
arr = [1, 2, 3]
for i in range(len(arr)):
print(arr[i])
0是隱含的,您使用該變數i來索引您的陣列。
另一種方法是使用enumerate. 它會給你每次迭代的索引和值。
for i, value in enumerate(arr):
print(value)
現在,如果您不需要索引,您可以直接遍歷陣列。
for value in arr:
print(value)
對于資料幀,它們有一些迭代器,您可以在for回圈中使用它們。我認為這與您的描述中的資料模型不匹配,但它會給您一個一般情況。
for row in df.iterrows():
print(row['urls'])
您也許可以這樣做:
for url in df['urls']:
print(url)
如果 'urls' 是一列。
作為參考,當您使用while回圈時,它需要看起來像這樣。
這不是迭代這個陣列的正確方法
cnt = 0
while cnt < len(arr):
print(arr[cnt])
cnt = 1
或為 while True
cnt = 0
while True:
if cnt >= len(arr):
break
print(arr[cnt])
cnt = 1
希望您能明白為什么for首選回圈。更少的代碼,更干凈,更不容易出錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/412369.html
標籤:
