pandas.DataFrame.to_csv() 的数字格式列?

Number format column with pandas.DataFrame.to_csv()?

我有一个进程可以使用以下方法从 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"

感谢大家的支持!

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