我正在做一些网络抓取,并使用抓取的数据制作一个csv。
我创建了带有列的数据框:
df = pd.DataFrame(columns=['name', 'type', 'regular_price', 'Image src', 'Attribute 1 name', 'Attribute 1 value(s)', 'Attribute 2 name', 'Attribute 2 value(s)', 'Attribute 1 visible', 'Attribute 1 global', 'Attribute 2 visible', 'Attribute 2 global'])
我遍历所有链接,并逐页提取数据,并使用此方法将其附加到数据框:
df = df.append({'name':names,'type':'variable', 'regular_price':combprice, 'Image src':'1', 'Attribute 1 name':'Color' ,'Attribute 1 value(s)':'2' ,'Attribute 2 name':'Size' ,'Attribute 2 value(s)':sizes ,'Attribute 1 visible':'1' ,'Attribute 1 global':'1' ,'Attribute 2 visible':'1' ,'Attribute 2 global':'1'}, ignore_index=True)
除了“ regular_price”和“ Image src”以外,我所有的列都在工作,我确实有“属性1值”在工作。尽管现在不是。
每次循环后我都在做:
df.at[count, 'Image src'] = images
df.at[count, 'Attribute 1 value(s)'] = colors
而且'regular_price'未被填充的事实很奇怪,因为我可以毫无问题地打印值,与'images'列表相同
任何帮助将不胜感激。
dicts = {}
keys = ['name', 'type', 'regular_price', 'Image src', 'Attribute 1 name', 'Attribute 1 value(s)', 'Attribute 2 name', 'Attribute 2 value(s)', 'Attribute 1 visible', 'Attribute 1 global', 'Attribute 2 visible', 'Attribute 2 global']
for i in keys:
dicts[i] = names # and others
然后在最后创建一个数据框pd.DataFrame(dicts)