2015-08-28 71 views
0

我使用python的熊貓,我落得下表:日期格式熊貓 - Python的

+---------------------+----------------------+-----------------+ 
|  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

也許轉換週期與STR(字符串在JavaScript中,簡單的方法,閱讀和達到的concensus幾年前在http://stackoverflow.com/questions/538666/python-format-timedelta-to-string。 – 2015-08-28 04:49:38

回答

0

的問題是持續時間列使用類型,是不是在Javascript嚴格使用。

嘗試將持續時間列轉換爲Python中的字符串或顯式替換列或創建格式化字符串的新列。我懷疑熊貓數據框中該列的當前dtype是Python時間點或類似的。

在序列化爲JSON並傳輸後,它看起來像持續時間被解釋爲JavaScript Date,因爲2天和4小時已轉換爲1970年1月1日後的2天和4小時,「零」 Unix time這也是JS時間標準。在Javascript中,Date對象與Python中的DateTime類似。

0

這是一個有點難看,但你可以同時投射到pandas字符串表示這樣的:)

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