Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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_Dataframe_Loops_For Loop_Row - Fatal编程技术网

如何在Python中逐行地为数据帧中的切片创建索引

如何在Python中逐行地为数据帧中的切片创建索引,python,dataframe,loops,for-loop,row,Python,Dataframe,Loops,For Loop,Row,我是Python新手,我在一家web自动化公司工作,负责清理一些数据并帮助我进行分析 因此,我将这些数据放在一个数据框中,例如: Name site data1 site data2 SiteID name1 23 ins 43 vid 082820399 name2 67 ins 3 vid 996820344 name3 55 ins 67 vid 201988493 使用

我是Python新手,我在一家web自动化公司工作,负责清理一些数据并帮助我进行分析

因此,我将这些数据放在一个数据框中,例如:

 Name    site data1    site data2    SiteID
name1       23 ins       43 vid     082820399
name2       67 ins        3 vid     996820344
name3       55 ins       67 vid     201988493
使用seleniumscrape获取数据,但我需要的是创建一个函数,为我的函数选择SiteID列中的每一行,在那里运行scrape

我尝试在开始时创建for切片,我尝试使用“.iterrows”和“.iteritems”,我尝试在for切片中使用“apply”,但没有任何效果

出现的是页面打开,但没有任何URL

我的代码如下:

df = pd.read_csv('channel_data.csv')
df1 = df['SiteID']


class Channel_DSO:
    for links, row in df1.iterrows():
        def canais_dados():
        
        driver = webdriver.Chrome(
            'C:/chromedriver_win32_3/chromedriver.exe')
        for link in links:
            driver.get('{}/site?param=0&flow'.format(links))
            content = driver.page_source.encode ('utf-8').strip()
            soup = BeautifulSoup (content, 'lxml')
            site_detail = []
            detail = soup.find_all('a', id='site-detail')
            for detail in details:
                site_detail.append(details.text)

            link_detail = []
            l_details = soup.find_all('span', class_='link-detail-text') 
            for l_detail in l_details:
                link_detail.append(l_details.text)

         
            sites_data = []
            for detail, l_detail in zip(site_detail, link_detail):
                sites_data.append(
                {'Site': detail, 'L detail': l_detail})
         driver.quit()
我不知道该怎么办,我在网上搜索任何回复

我很抱歉,如果这个问题是如此愚蠢,如果我说错了什么

希望有人能帮我…谢谢


编辑:我写的是废纸而不是刮纸(谢谢巴尼);另外,我在代码中看到了另一个错误:“df1=df['SiteID']”我选择了另一列,但这并不影响结果。很抱歉,我不想打扰您。

我发现了一个解决方案……只是在类中创建了另一个“def”函数

我的解决方案运行良好,可以迭代数据帧中的每一行

工作原理:

df = pd.read_csv('channel_data.csv')
df1 = df['SiteID']


class __init__: 
    def canais_dados():   
    driver = webdriver.Chrome(
        'C:/chromedriver_win32_3/chromedriver.exe')
    for link in links:
        driver.get('{}/site?param=0&flow'.format(links))
        content = driver.page_source.encode ('utf-8').strip()
        soup = BeautifulSoup (content, 'lxml')
        site_detail = [] 
        detail = soup.find_all('a', id='site-detail')
        for detail in details:
            site_detail.append(details.text)

        link_detail = []
        l_details = soup.find_all('span', class_='link-detail-text') 
        for l_detail in l_details:
            link_detail.append(l_details.text)

     
        sites_data = []
        for detail, l_detail in zip(site_detail, link_detail):
            sites_data.append(
                {'Site': detail, 'L detail': l_detail})
    driver.quit()

    def links_loop:
        for links in links:
            loop = next(links.iteritem[i+1])
            if loop == False:
                links_loop.exit()
            elif loop == True:
                exec(canais_dados)
它工作得很好。
谢谢大家,很抱歉打搅一下,或者关于任何错误。

仅供参考,这是刮(刮,刮,刮)而不是刮。”“报废”的意思是像垃圾一样扔掉。以粗体突出显示的编辑谢谢@barny。对于这个错误,我很抱歉。