Python DataFrame问题

问题描述 投票:0回答:1

我正在做一些网络抓取,并使用抓取的数据制作一个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'列表相同

任何帮助将不胜感激。

python pandas dataframe screen-scraping
1个回答
0
投票
尝试在迭代并最终创建数据框时将值附加到字典中

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)    
© www.soinside.com 2019 - 2024. All rights reserved.