日期格式化熊猫 - Python

时间:2015-08-28 03:10:55

标签: javascript python pandas

我在python中使用pandas,最后得到了下表:

+---------------------+----------------------+-----------------+
|        start        |        finish        |    duration     |
+---------------------+----------------------+-----------------+
| 2013-08-12 12:00:00 | 2013-08-14 16:00:00 | 2 days 04:00:00 |
+---------------------+----------------------+-----------------+

dataframe=dataframe.to_json(orient='records',date_format='iso',double_precision=2,date_unit='s')

return jsonify(data=dataframe)

我使用AJAX请求data发送此邮件,在javascript方面我最终使用data.duration = 1970-01-03T04:00:00Z

如何格式化数据框,以便在我致电data.duration时获得2 days 04:00:00

请注意,持续时间使用以下计算:

data_frame['duration'] = data_frame['finish'] - data_frame['start']

2 个答案:

答案 0 :(得分:0)

问题是持续时间列使用的是Javascript中严格不可用的类型。

尝试将持续时间列转换为Python中的String或显式替换列或创建新的格式化字符串列。我怀疑pandas数据帧中该列的当前dtype是Python timedelta或类似的。

序列化为JSON并传输后,看起来持续时间被解释为JavaScript Date,因为2天4小时已经转换为1970年1月1日纪元日期后的2天4小时#34;零" Unix time这也是JS时间标准。在Javascript Date中,对象类似于Python中的DateTime

答案 1 :(得分:0)

它有点难看,但您可以像这样转换为pandas字符串表示:

dataframe['duration'].apply(lambda x: str(pd.Timedelta(x)))