Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将程序的输出重定向到数据帧_Python_Python 3.x_Pandas_Selenium_Dataframe - Fatal编程技术网

Python 如何将程序的输出重定向到数据帧

Python 如何将程序的输出重定向到数据帧,python,python-3.x,pandas,selenium,dataframe,Python,Python 3.x,Pandas,Selenium,Dataframe,如何将文件的输出重定向到数据帧 from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup import re import pandas as pd import os import html5lib import json import time from selenium import webdriver from selenium.

如何将文件的输出重定向到数据帧

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import re
import pandas as pd
import os
import html5lib
import json
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions

pin=['mumbai','newyork']
#Declare list here
City=[]
PinCode=[]
for i in pin :

    url = "https://www.google.com/"
    chromedriver = r"C:\Users\me\chromedriver"
    driver = webdriver.Chrome(chromedriver)
    driver.implicitly_wait(30)
    driver.get(url)


    search = driver.find_element_by_name('q')
    search.send_keys(i,'pincode')
    search.send_keys(Keys.RETURN)

    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//div[@class="IAznY"]//div[@class="title"]')))
    elmts = driver.find_elements_by_xpath('//div[@class="IAznY"]//div[@class="title"]')
    #Append the data into list
    City.append(i)
    PinCode.append(elmts[0].text)

#added into dataframe
df=pd.DataFrame({"City":City,"PinCode":PinCode})
print(df)


time.sleep(3)
driver.quit()
此代码打开浏览器,键入提供的给定数据并获取第一个可用数据

代码:

selenium pincodes

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import re
import pandas as pd
import os
import html5lib
import json
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions

pin=['mumbai','newyork']

for i in pin :

    url = "https://www.google.com/"
    chromedriver = r"C:\Users\me\chromedriver"
    driver = webdriver.Chrome(chromedriver)
    driver.implicitly_wait(30)
    driver.get(url)


    search = driver.find_element_by_name('q')
    search.send_keys(i,'pincode')
    search.send_keys(Keys.RETURN)

    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//div[@class="IAznY"]//div[@class="title"]')))
    elmts = driver.find_elements_by_xpath('//div[@class="IAznY"]//div[@class="title"]')
    print(i,elmts[0].text)

    time.sleep(3) 
    driver.quit()

此代码输出以下内容


newyork 10001
mumbai 230532

如何像这样将此输出重定向到df

city      pincode

newyork    10001
mumbai     230532

从技术上讲,从另一个脚本执行一个脚本(作为子流程)并解析(重定向的)输出是可以做到的,但这肯定不是正确的方法(实际上也不是最简单的方法)


相反,您希望像中一样重构脚本,让一个函数处理另一个函数的结果。

声明两个数组并添加到dataframe中

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import re
import pandas as pd
import os
import html5lib
import json
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions

pin=['mumbai','newyork']
#Declare list here
City=[]
PinCode=[]
for i in pin :

    url = "https://www.google.com/"
    chromedriver = r"C:\Users\me\chromedriver"
    driver = webdriver.Chrome(chromedriver)
    driver.implicitly_wait(30)
    driver.get(url)


    search = driver.find_element_by_name('q')
    search.send_keys(i,'pincode')
    search.send_keys(Keys.RETURN)

    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//div[@class="IAznY"]//div[@class="title"]')))
    elmts = driver.find_elements_by_xpath('//div[@class="IAznY"]//div[@class="title"]')
    #Append the data into list
    City.append(i)
    PinCode.append(elmts[0].text)

#added into dataframe
df=pd.DataFrame({"City":City,"PinCode":PinCode})
print(df)


time.sleep(3)
driver.quit()
输出:

      City PinCode
0   mumbai  230532
1  newyork   10001
像这样

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import re
import pandas as pd
import os
import html5lib
import json
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions

pin=['mumbai','newyork']

df_output = pd.DataFrame(columns=["City", "pincode"])

for i in pin :

    url = "https://www.google.com/"
    chromedriver = r"C:\Users\me\chromedriver"
    driver = webdriver.Chrome(chromedriver)
    driver.implicitly_wait(30)
    driver.get(url)


    search = driver.find_element_by_name('q')
    search.send_keys(i,'pincode')
    search.send_keys(Keys.RETURN)

    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//div[@class="IAznY"]//div[@class="title"]')))
    elmts = driver.find_elements_by_xpath('//div[@class="IAznY"]//div[@class="title"]')
    print(i,elmts[0].text)

    df_output = df_output.append(pd.DataFrame(columns=["City", "pincode"], data=[[i,elmts[0].text]]))

    time.sleep(3) 
    driver.quit()
print(df_output)

你不能重定向。您可以将项目放入列表-
data.append([i,elmts[0].text])
,然后使用所有数据创建
DataFrame(data)
,或者您必须创建空的
DataFrame
,然后再追加行。请帮助我查看列表。