Как назначить каждые данные l oop нескольким столбцам для l oop? - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть CSV-файл, который содержит 5 URL-адресов в одном столбце с именем «URLS». Используя urllib, я собираю данные каждого URL, разбиваю их на слова, добавляю их в пустой список и создаю фрейм данных, используя этот пустой список. Теперь проблема в том, что все данные, собранные с 5 URL-адресов, находятся только в одном столбце, но я хочу назначить данные каждого URL-адреса каждому столбцу. Как это сделать?

import requests
import urllib.request
import pandas as pd
url_list = pd.read_csv("/home/user/Desktop/websites.csv")
urls = url_list['URLS']



def addhttp():

    empty=[]
    for url in urls:
    final_url = 'http://' + url
    try:
        html = urllib.request.urlopen(final_url).read().decode('utf-8')
        text = get_text(html)
        extracted_data = text.split()
        refined_data = []
        SYMBOLS = '{}()[].,:;+-*/&|<>=~0123456789'
        for i in extracted_data:
            if i not in SYMBOLS:
                refined_data.append(i)

        print("\n", "$" * 50, "HEYAAA we got arround: ", len(refined_data), " of keywords! Here are they: ",
              "$" * 50, "\n")
        empty.append(refined_data)


    except:
        pass

    df = pd.DataFrame(empty)
    df.to_csv('websitesdata.csv', index=False)


Original Output:

0
This
website
is
all
about
learning
python
-
-
-
-
not
serving
any
more
etc


Expected Output:

website:1  website:2  website:3    
This         This      This
website       is       website
is           another    not
all          website   serving
about        where      any
learning     you       more
python       can
             learn
             python

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете использовать словарь для сохранения данных вместо списка. В этом частном случае было бы полезно defaultdict .

from collections import defaultdict
refined_data = defaultdict(list)
.
.
.
for url in urls:
.
.
.
    for i in extracted_data:
    .
    .
    .
        refined_data[url].append(i)

. , .

Это должно дать вам желаемый результат

...