1

我有一个过程,而不是使用以下方法从 Microsoft SQL 数据库中读取信息:

df = psql.read_sql(sql, con=connection)
print(df)

此函数用于许多过程,因此变量sql没有相同的列(变量结构)。

然后我得到例如以下数据:

STORE EMAIL_CONTACT VALUE
10    a@mail.com    2.2100
23    b@mail.com    0.7990

到目前为止一切都很好。

使用以下方法提取到 csv 时:

file = r"Test.csv"
df.to_csv(file, sep=";", index=False, quoting=csv.QUOTE_ALL)

输出如下:

"STORE";"EMAIL_CONTACT";"VALUE"
"10.0";"a@mail.com";"2.2100"
"23.0";"b@mail.com";"0.7990"

STORE 列现在有“.0”...

有没有办法配置函数“to_csv”以准确输出(值),如打印所示?提前致谢。

"STORE";"EMAIL_CONTACT";"VALUE"
"10";"a@mail.com";"2.2100"
"23";"b@mail.com";"0.7990"

已解决:问题出在小数选项上:

df.to_csv(file, sep=";", index=False, quoting=csv.QUOTE_ALL, decimal=",")

"STORE";"EMAIL_CONTACT";"VALUE"
"10";"a@mail.com";"2.2100"
"23";"b@mail.com";"0.7990"

感谢大家的支持!

4

1 回答 1

2

STORE 可能是一个浮点数,检查一下

print df.STORE.dtype

如果是这样,请执行以下操作:

df.STORE = df.STORE.astype(int)

然后:

df.to_csv("Test.csv", sep=";", index=False)

输出:

STORE;EMAIL_CONTACT;VALUE
1;a@mail.com;2.2100
2;b@mail.com;0.7990

编辑:用于制表:

df.to_csv("Test.csv", sep="\t", index=False)

这将输出具有以下格式的 csv:

STORE    EMAIL_CONTACT    VALUE
1    a@mail.com    2.2100
2    b@mail.com    0.7990
于 2015-08-27T12:11:51.107 回答