Python 如何将每个循环数据分配给for循环中的多个列?
我有一个csv文件,在一个名为“URL”的列下有5个URL。使用urllib,我将抓取每个URL的数据,并将数据拆分为单词,然后将其附加到空列表中,并使用该空列表创建dataframe。现在的问题是,从5个URL中刮取的所有数据都只在一列中,但我想将每个URL数据分配给每列。怎么做Python 如何将每个循环数据分配给for循环中的多个列?,python,python-3.x,for-loop,Python,Python 3.x,For Loop,我有一个csv文件,在一个名为“URL”的列下有5个URL。使用urllib,我将抓取每个URL的数据,并将数据拆分为单词,然后将其附加到空列表中,并使用该空列表创建dataframe。现在的问题是,从5个URL中刮取的所有数据都只在一列中,但我想将每个URL数据分配给每列。怎么做 import requests import urllib.request import pandas as pd url_list = pd.read_csv("/home/user/Desktop/website
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
导入请求
导入urllib.request
作为pd进口熊猫
url\u list=pd.read\u csv(“/home/user/Desktop/websites.csv”)
url=url\u列表['url']
def addhttp():
空=[]
对于url中的url:
最终url='http://'+url
尝试:
html=urllib.request.urlopen(最终url.read().decode('utf-8'))
text=获取文本(html)
提取的数据=text.split()
优化的_数据=[]
符号='{}()[],:+-*/&|=~0123456789'
对于提取的_数据中的i:
如果我没有使用符号:
细化_数据追加(一)
打印(“\n”、“$”*50),“HEYAAA我们得到了:”,len(精炼的_数据),“的关键字!它们是:”,
“$”*50,“\n”)
empty.append(细化的_数据)
除:
通过
df=pd.DataFrame(空)
df.to_csv('websitesdata.csv',index=False)
原始输出:
0
这
网站
是
全部的
关于
学习
python
-
-
-
-
不
服务
任何
更多
等
预期产出:
网站:1网站:2网站:3
这个这个
网站就是网站
另一个不是
所有网站服务
哪里有
了解你更多
蟒蛇罐头
学习
python
您可以使用字典而不是列表来保存数据。
在这种情况下,局部的情况将是有用的
from collections import defaultdict
refined_data = defaultdict(list)
.
.
.
for url in urls:
.
.
.
for i in extracted_data:
.
.
.
refined_data[url].append(i)
。
.
这应该会给你带来想要的结果我没有得到确切的结果。你能再定义一下吗。我应该在函数内部或函数外部提到代码defined_data=defaultdict(list)列表应该包含什么?不要使用空的=[]使用defined_data,直到我只在一列中获取数据,但我想要多列。如果可能的话,你能纠正有问题的代码吗,因为我很困惑。