gpt4 book ai didi

python - to_csv 上的数据框标题

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:01 24 4
gpt4 key购买 nike

我有一个具有以下结构的数据框,为了解决这个问题,我对其进行了简化,我正在从 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 个“stuff”行之后的第一行应该是从 csv temp.dat 读取的标题,但 f.write 语句的写入弄乱了列。

我想要的输出是:

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'什么意思Python写入模式append in to_csv :

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 = 'stuff\n'
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

关于python - to_csv 上的数据框标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44389308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com