我有一个这样的数据框:
In [67]:
call_df.head()
Out[67]:
timestamp types
1 2014-06-30 07:00:55 Call_O
2 2014-06-30 07:00:05 Call_O
3 2014-06-30 06:54:55 Call_O
501 2014-06-30 11:24:01 Call_O
当我将该数据帧保存到csv文件时,日期时间的格式会发生变化,但我会丢失秒数。我只是把这段代码保存到csv文件中:
call_df.to_csv('D:/Call.csv')
csv文件输出如下:
在这里我想问一下,如何将相同的日期时间格式从dataframe保存到csv文件
答案 0 :(得分:8)
to_csv
接受date_format
参数,请尝试以下操作:
call_df.to_csv('D:/Call.csv', date_format='%Y-%m-%d %H:%M:%S')
在您的样本数据集中,这产生了:
timestamp,types
2014-06-30 07:00:55,Call_O
2014-06-30 07:00:05,Call_O
2014-06-30 06:54:55,Call_O
2014-06-30 11:24:01,Call_O
答案 1 :(得分:1)
你的问题不是python问题而且无法直接修复。为什么呢?
当您从excel打开csv文件时,它会将您的数据转换为它应该是的任何类型,在这种情况下,您的数据转换为日期类型,然后excel将默认日期格式应用于该数据。此外,您无法控制Excel文件的日期格式,因为csv文件只是一个文本文件,没有meta或隐藏数据来建议excel继续。
如果您仍想在excel中控制格式,则需要强制数据为字符串,而不是日期。大多数情况下我们添加'在任何数据前面我们更喜欢字符串格式。您可以根据需要显示正确的格式,但会丢失日期数据类型。
答案 2 :(得分:1)
这个问题的答案分为两个步骤:
1)首先将时间戳列转换为日期时间:
call_df['timestamp'] = call_df['timestamp'].astype('datetime64[ns]')
2)使用" to_csv"添加date_format参数。执行第一步后:
call_df.to_csv("Call.csv", date_format='%Y-%m-%d %H:%M:%S')
答案 3 :(得分:0)
将日期时间列更改为字符串:
call_df['timestamp'] = call_df['timestamp'].apply(lambda v: str(v))
然后你可以保存到csv以保留格式