【问题标题】:pandas for loop for dataframe to csv - column questionpandas for loop for loop for dataframe to csv - 列问题
【发布时间】:2020-05-10 18:18:03
【问题描述】:

我创建了一个 for 循环来迭代数据帧并将其导出到 csv

for x in range (len(price)):
    df = pd.DataFrame(data1, columns= ['Price', 'Location', 'Area size'])
    data1 = {'Price': [price[x].text],
        'Location': [location[x].text],
        'Size': [area_size[x].text]}
    df.to_csv('static/home.csv', header="False", mode="a")
driver.quit()

csv 已成功创建,但由于“df”在 for 循环中,Price/Location/Areasize 列也创建了与 foor 循环一样多次,它看起来像这样

我尝试像这样在 foo 循环之外删除 df:

df = pd.DataFrame(data1, columns= ['Price', 'Location', 'Area size'])
for x in range (len(price)):
    data1 = {'Price': [price[x].text],
        'Location': [location[x].text],
        'Size': [area_size[x].text]}
    df.to_csv('static/home.csv', header="False", mode="a")
driver.quit()

但随后它给出了“未定义数据1”的错误。知道如何通过不迭代 Price/Location/Area 列来创建 for 循环,这样它们就不会被多次创建?

【问题讨论】:

  • 你能分享一个你的数据框样本吗?
  • 您不想创建列的次数与循环运行的次数一样,但是您也可以使用 to_csv 和循环中的附加模式。我不确定我是否理解这件事的兴趣?是因为例如[price[x].text] 还是另一个太大?
  • @user3916 试试df.to_csv('static/home.csv', header=True if x==0 else False, mode="a")
  • 谢谢 试试这个。我让它像这样工作,但它有点难看...df = pd.DataFrame(columns= ['Price', 'Location', 'Area size']) df.to_csv('static/home.csv', header=True) for x in range (len(price)): data1 = {'Price': [price[x].text], 'Location': [location[x].text], 'Size': [area_size[x].text]} df = pd.DataFrame(data1, columns= ['Price', 'Location', 'Area size']) df.to_csv('static/home.csv', header=False, mode="a") driver.quit() 基本上在循环内外创建了一个 df
  • 你的作品太不知道你可以在那里使用 if/else,谢谢!

标签: python pandas selenium for-loop


【解决方案1】:

你应该使用df.append()

df = pd.DataFrame(data1, columns= ['Price', 'Location', 'Area size'])
for x in range (len(price)):
    # data1 is dataframe , i dont #know how your data looks like, so #you need to prepare it on your own #before append

    df=df.append(data1)
 df.to_csv(“path”)

【讨论】:

  • 谢谢尝试这个,但我得到以下错误: NameError: name 'data1' is not defined 如果我将“df =”留在循环中,那么我将列名写入 csv价格的好几倍。我只想将价格、位置、区域大小的值写入 csv 或附加,但列名称价格、位置、区域大小导出一次
猜你喜欢
  • 2019-05-28
  • 2022-01-22
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多