我有一个过程,而不是使用以下方法从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”来准确输出(值),如print所示?提前谢谢。
"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"
感谢大家的支持!
答案 0 :(得分:1)
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