【问题标题】:Avoid column header during dataframe export to csv in a for loop在 for 循环中将数据框导出到 csv 期间避免列标题
【发布时间】:2020-03-15 01:52:16
【问题描述】:

在我的情况下,我通过for loopdata frame 导出到.csv 文件。每次迭代的数据框都是从list of dict 创建的。导出的信息是正确的,但当然,对于每次迭代,标题都会显示在 csv 文件中。

这里是sn-p的代码:

f = open("Test" + ".csv", "w+")
for junc in Junctions:
        conn = model.connections(Junction = junc)  #list(dict)
        DF4dictConn = pd.DataFrame(conn)           #convert to DF
        DF4dictConn['Junction'] = junc  # Add a new column
        DF4dictConn.set_index('Junction',inplace=True)  #set the new column as index
        DF4dictConn.to_csv(f,sep=',')  #export dataframe for each junction

.csv 文件的输出如下所示:

有没有办法避免标题重复但只显示一次标题?

康恩:

【问题讨论】:

  • 实际上看起来有点奇怪,你每次迭代都写.csv。先建一个合适的DataFrame,再写一次``.csv`文件不是更好吗?
  • 是的,@SimonFink 我先这样做了,但是在构建整个列表(dict)并最终将其一次性转换为数据框时遇到了问题。有没有更好的方法来编写这段代码?
  • 结帐DataFrame.append()函数。因此,您可以遍历您的 Junction 并构建一个单独的 DataFrame。
  • 更新了一张图片。

标签: python csv dataframe dictionary


【解决方案1】:

DataFrame.to_csv()documentation 中所述,您需要设置header 标志。因此,请尝试:

DF4dictConn.to_csv(f,sep=',', header=False)  #export dataframe for each junction

如果您想在循环的第一次迭代中显示标题,请参考这个漂亮的article 了解如何实现Head-Tail 设计模式

【讨论】:

  • 嗨西蒙,很抱歉我刚刚更新了查询。我想让标题只显示一次作为第一行。
  • 为此目的添加了一篇文章。
  • @user11397513 然后为第一次迭代创建一个标志并包含该标题
  • 很难猜,因为我不知道juncconn 长什么样子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2012-10-08
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多