gpt4 book ai didi

python - 将 pandas DataFrame 写入包含一些空行的 csv 文件

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:08 57 4
gpt4 key购买 nike

我创建了一个仅包含字符串的单列 pandas DataFrame。一排是空的。当我将文件写入磁盘时,空行得到一个空引号“”,而我根本不需要引号。以下是重现问题的方法:

import pandas as pd
df = "Name=Test\n\n[Actual Values]\nLength=12\n"
df = pd.DataFrame(df.split("\n"))
df.to_csv("C:/Users/Max/Desktop/Test.txt", header=False, index=False)

输出文件应该是这样的:

Name=Test
[Actual Values]

Length=12

而是这样的:

Name=Test
[Actual Values]
""
Length=12

有没有办法指示 Pandas 不要写引号并在输出文本文件中留下一个空行?非常感谢。

最佳答案

DataFrame.to_csv 有一个名为 na_rep 的参数。如果您有 None 值,它将用您传递到此字段的任何内容替换它们。

import pandas as pd
df = "Name=Test\n"
df += "\n[Actual Values]\n"
df += "Length=12\n"
df = pd.DataFrame(df.split("\n"))
df[df[0]==""] = None
df.to_csv("pandas_test.txt", header=False, index=False, na_rep=" ")

不幸的是,似乎传入 na_rep="" 会将引号打印到 csv 中。但是,如果你传入一个空格 (na_rep=""),它看起来更美观......

当然,您始终可以编写自己的函数来输出 csv,或者使用以下方法简单地替换输出文件中的“”:

f = open(filename, 'r')
text = f.read()
f.close()
text = text.replace("\"\"","")
f = open(filename, 'w')
f.write(text)
f.close()

下面是您可以编写自己的 to_csv() 方法的方法:

def to_csv(df, filename, separator):
f = open(filename, 'w')
for col in df.values:
for row in col:
f.write(row + separator)
f.close()

关于python - 将 pandas DataFrame 写入包含一些空行的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20665141/

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