我在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']
答案 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)))