def function10():
    all_data_df = pd.DataFrame()

    for domain, df in zip(base_domains, df_list):
        # List of URLs to scrape
        urls = [f"https://{domain}/{slug}" for slug in df["URL"][:-1]]

        for idx, url in enumerate(urls):
            all_data = []

            driver.get(url)
            div_content_driver = driver.find_element(By.ID, "prepared_content")

            select_element = div_content_driver.find_element(By.XPATH, ".//select")
            select = Select(select_element)

            while select.first_selected_option.get_attribute('value') != "-1":
                select.select_by_value("-1")

            html_content = driver.page_source
            soup = BeautifulSoup(html_content, "html.parser")

            div_content = soup.find("div", {"id": "prepared_content"})
            table = div_content.find("table", {"class": "opt_task_table"}) if div_content else None # find table in each page

            if table:
                data = []
                prev_row = None
                first_row = True

                budget_div = soup.find("div", class_="head")
                if budget_div:
                    h5_element = budget_div.find("h5")
                    if h5_element:
                        klient_name = h5_element.text.split(" - Budżet")[0].strip()
                    else:
                        klient_name = "Unknown Client"
                else:
                    klient_name = "Unknown Client"

                for tr in table.find_all("tr"):
                    if first_row:
                        first_row = False
                        continue 

                    tds = tr.find_all("td")   

                    if len(tds) >= 6:
                        row_data = [tds[i].get_text().strip() for i in [1, 2, 4, 5]]
                        row_data_without_type = [row_data[0], row_data[-2], row_data[-1]]

                        if all(row_data):
                            if prev_row is None or row_data_without_type != prev_row_data_without_type:
                                all_data.append(row_data)
                                prev_row = row_data
                                prev_row_data_without_type = row_data_without_type
                            else:
                                print(f"Same row as previous, not appended: {row_data}")
                        else:
                            print(f"Row skipped due to missing columns: {[td.get_text().strip() for td in tds]}")

                all_data.extend(data)
                all_data_with_klient = [[klient_name] + row for row in all_data]
                df_data = pd.DataFrame(all_data_with_klient, columns=["Klient", "Zadanie tekstowe", "Data dodania", "Status", "Wykonawca"])
                all_data_df = pd.concat([all_data_df, df_data], ignore_index=True)

    # Filter the DataFrame to separate rows with status "nowe".
    filtered_df_nowe = all_data_df[all_data_df['Status'] == 'nowe']

    # Format emails before grouping
    filtered_df_nowe['Wykonawca'] = filtered_df_nowe['Wykonawca'].apply(format_email)

    # Group the DataFrame by 'Wykonawca' (email address)
    grouped_df = filtered_df_nowe.groupby('Wykonawca')

    # Save the filtered DataFrame to a separate CSV file.
    # if you want use groupby usage is: .groupby(['Wykonawca', 'Klient']).sum().reset_index() or to_csv dosent work
    filtered_df_nowe.groupby(['Wykonawca', 'Klient']).sum().reset_index().to_csv("filtered_nowe_data.csv", index=False)
    print("Filtered 'nowe' data saved to filtered_nowe_data.csv")

    # Now, filter out rows with None 'Wykonawca' before creating messages
    filtered_df_nowe = filtered_df_nowe.dropna(subset=['Wykonawca'])

i want add couting rows in this function, i want to df_data Data frame add next column which will count how much rows are merged with skipped ones so i can know how much texts were published i also want to add this count number in filtered_df_nowe