【问题标题】:ELIMINATE DECIMAL USING to_csv Pandas使用 to_csv Pandas 消除小数
【发布时间】:2018-08-03 19:16:15
【问题描述】:

当我将数据框导出到 csv 时遇到问题。我有一个列号,例如 1520,但是当我使用 to_csv 导出到 csv 时,在 te 文件中我找到带十进制的数字 1520.0,是否可以消除“.0”而只保留数字“1520”?

tod​​o.to_csv('D:\prueba.csv', sep=',',header=False,index=False)

我已经用这段代码解决了,但是当我有很多列时会很复杂

for i in range(81,698):
 print("Creacion de archivo LOTE_AMD_M{0}.csv".format(i))
 data = pandas.read_sql(sql2.format(i),cnxn)
 todo=pandas.concat([dat,data])

 ruta='D:\descarga\LOTE_AMD_M{0}.csv'.format(i)
 r=todo
 r=r.fillna('')

 archivo= open(ruta,"a")
 count=0
 for index,row in r.iterrows():
     d=''
     for j in list(todo):
         if j == 'C1':
             t=str(row[j])
             d+=",{0}".format(t[0:len(t)-2])
         else:    
             d+=",{0}".format(row[j])

     archivo.write(d[1:len(d)]+'\n')
     count+=1

     if count%1000==0:
         print("se han insertado ",count," lineas")

archivo.close()

print("termino Carga SQL Query")

【问题讨论】:

  • 您是否尝试指定float_format 参数?
  • 是的,我打算使用 float_format="%" ,这是正确的形式吗?

标签: python csv export-to-csv


【解决方案1】:

@abarnert 已在类似问题中回答了此问题,请参阅: https://stackoverflow.com/questions/16763327/python-round-leaving-a-trailing-0

基本上,您应该将float_format 参数设置为float_format='%.0f'。这应该可以完成工作。

【讨论】:

    猜你喜欢
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2020-03-16
    • 2013-06-25
    • 2018-05-18
    • 2014-02-04
    相关资源
    最近更新 更多