2017-11-23 14 views
1

私はこれ以上の睡眠を失っています。 SOは大いに役立ちますが、それでも何か間違っています。すべての結果をループで一緒に印刷

def function_input(): 
    .................... 
    find_input.clear() 
    find_input.send_keys(i) 
    button.click() 
    time.sleep(5) 
    f_copy() 

def f_copy(): 
    element3 = driver.find_elements_by_xpath(" ") 

    l=[] 
    for element4 in element3: 
     element4_list = element4.text 

     l.append(pd.DataFrame(element4_list, columns=['a','b','c'])) 
     pd.set_option('display.max_colwidth', -1) 
     df = pd.concat(l).reset_index(drop=True) 
     df['Input value'] = i 

    print(tabulate(df, headers='keys', tablefmt='psql'))  

def loop_page(): 
    find_next_button = driver.find_element_by_xpath(" ")  
    if 'no-next-page'in find_next_button.get_attribute(''): 
     pass 
    elif 'yes-next-page' in find_next_button.get_attribute(''): 
     find_next_button.click() 
     time.sleep(5) 
     f_copy() 
    else: 
     pass 

for j in range(1, 5, 1): 
    i = j 

    f_copy() 
    loop_page() 

私が得る結果は、私がdf.concatを試してみました

>>> 

+---+----+----+----+  #page 1 (input 1) 
| | a | b | c | 
+---|----+----+----+ 
| 0 | 3 | 1 | 21 | 
+---+----+----+----+ 

+---+----+----+----+  #page 2 (input 1) 
| | a | b | c |  
+---|----+----+----+ 
| 0 | 5 | 8 | 41 | 
+---+----+----+----+ 

+---+----+----+----+  #page 1 (input 2) 
| | a | b | c |  
+---|----+----+----+ 
| 0 | 3 | 3 | 3 | 
+---+----+----+----+ 
>>> 

ですが、テーブルには、 '区切り' ではありません。 可能なすべてのループを試しましたが、まだ失敗します。 これは私の最高のループ結果でした。

結果は、各入力から各ページのすべての結果を1つのテーブルに戻すことです。

>>> 

+---+----+----+----+   
| | a | b | c | 
+---|----+----+----+ 
| 0 | 3 | 1 | 21 | 
+---+----+----+----+ 
| 0 | 5 | 8 | 41 | 
+---+----+----+----+ 
| 0 | 3 | 3 | 3 | 
+---+----+----+----+ 
>>> 

答えて

0

pd.concat()には、新しいデータフレームと共に追加するデータフレームを追加する必要があります。あなたのコードを変更する - また

def f_copy(): 
    element3 = driver.find_elements_by_xpath(" ") 

    l=[] 
    for element4 in element3: 
     element4_list = element4.text 

     l.append(pd.DataFrame(element4_list_2, columns=['a','b','c'])) 
     l['Input value'] = i 
     pd.set_option('display.max_colwidth', -1) 
     df = pd.concat([df,l]).reset_index(drop=True) 

    print(tabulate(df, headers='keys', tablefmt='psql')) 

、あなたがそれを行う必要がありますループの外側が、関数の範囲内のdfデータフレームを、初期化/宣言していることを確認してください。

関連する問題