在python中进行df.to_csv格式化

时间:2016-04-19 10:18:17

标签: python date csv pandas

我有一个float数据类型列的数据框和2个日期类型column.Sample

 I    J    P          V  
1.2   11  2011-12-03  2015-08-07 19:14:07
1.0   18  2011-12-03  2015-08-07 19:14:07
1.8   21  2011-12-03  2015-08-07 19:14:07

现在我希望我和J col应该格式化为.4f(小数点后4位)。所以1.2应该反映为1.2000,在J col 18中应该反映为18.0000。 对于P和YYYY-MM-DD HH:MM:SS,日期字段应格式化为YYYY-MM-DD。

是的,在dateframe中看起来很好..我将I& J列由

df['I'] = ['%.4f'%x for x in df['I']]
df['J'] = ['%.4f'%x for x in df['J']]
 ## 1.2000, 11.0000  # fine

然后试图给出一个csv输出,但在那里再次1.2000反映为1.2和11.0000为11 ,,,,并且日期分别为03/12 / 2011,07 / 08/2015 19:14:07第一行数据框中的日期值。

未满足要求(小数点后4位,日期为YYYY_MM_DD)。

我试过

 df['P'] = [x.strftime('%Y-%m-%d') for x in df['P']]
 df['V'] = [x.strftime('%Y-%m-%d %H:%M:%S') for x in df['V']]
 #Then from doc and google tried doing 
 df.to_csv('D:/New.csv',date_format='%Y-%m-%d %H:%M:%S',index=False)  ### not worked
 df.to_csv('D:/changed_2.csv',float_format='string',date_format='%Y-%m-%d %H:%M:%S',index=False)   ###Also not Working

请建议我如何提供符合此要求的csv文件。

1 个答案:

答案 0 :(得分:1)

我认为您可以先按astype将列J转换为float,然后将列P转换为字符串strftime,最后添加参数{{ 1}}到to_csv

float_format