to_csv上的数据帧标题



我有一个以下结构的数据框

  A        B    C     D    E
  LOCATION DATE DATE  1    1
  LOCATION DATE DATE  1    1
  LOCATION DATE DATE  1    1
  LOCATION DATE DATE  1    1

我使用以下内容从文件temp.dat中读取此CSV:

dfinal = pd.read_csv("temp.dat", header=0)

然后完成以下内容

os.remove("temp.dat")
dfinal = dfinal.sort_values(by="B", ascending=True)
f = open(t, "w")
f.write(stuff)
f.write(stuff)
dfinal.to_csv(t, index=False)
f.close()

在上面的代码中删除了临时文件,数据帧通过上升日期进行排序,然后打开了名称分配给t的新文件。然后是两行编写了元数据,并将数据帧写入文件并最终关闭,但是编写如上所述的数据框在列名称上产生错误。

当前我的文件目前:

stuff
stuff
21,342,231,0,2 #Column names are being replaced here with unknown numbers
LOCATION DATE DATE  1    1
LOCATION DATE DATE  1    1
LOCATION DATE DATE  1    1
LOCATION DATE DATE  1    1

列的名称未正确打印,因为2个"东西"行之后的第一行应该是从csv temp.dat中读取的标题,但是F.Write语句的写入使列弄乱了。<<<<<<<<<</p>

我所需的输出将是:

stuff
stuff
A        B    C     D    E
LOCATION DATE DATE  1    1
LOCATION DATE DATE  1    1
LOCATION DATE DATE  1    1
LOCATION DATE DATE  1    1

我将如何实现这一目标?

我认为您需要mode='a' to_csv中的python写入模式append

print (dfinal)
          A      B     C  D  E
0  LOCATION  DATE1  DATE  1  1
1  LOCATION  DATE5  DATE  1  1
2  LOCATION   DATE  DATE  1  1
3  LOCATION   DATE  DATE  1  1
t = "temp.dat"
stuff = 'stuffn'
dfinal = dfinal.sort_values(by="B", ascending=True)
#write metadata
with open(t, "w") as f:
    f.write(stuff)
    f.write(stuff)
#append df to existing file filled by metadata
dfinal.to_csv(t, index=False, mode='a')
#omit first 2 metadata rows
df = pd.read_csv(t, header=2)
print (df)
          A      B     C  D  E
0  LOCATION   DATE  DATE  1  1
1  LOCATION   DATE  DATE  1  1
2  LOCATION  DATE1  DATE  1  1
3  LOCATION  DATE5  DATE  1  1

最新更新