我在pandas dataframe中有这个列Date_X,它是一个对象。我无法在这里使用pandas to_datetime函数。我想将此列转换为1到365的范围,我可以使用它进行分析。
29JAN14:21:16:00
01FEB14:00:11:00
30JAN14:15:11:00
01FEB14:00:07:00
29JAN14:19:31:00
30JAN14:23:52:00
29JAN14:19:18:00
30JAN14:16:46:00
30JAN14:21:39:00
31JAN14:17:40:00
01FEB14:00:16:00
答案 0 :(得分:2)
您可以使用import pandas as pd
pd.to_datetime(dataframe['column'],format='%d%b%y:%H:%M:%S')
关键字参数明确提供格式来使用pandas.to_datetime()
。示例 -
%d
格式的解释 -
%b
- 2位数日期
%y
- 2个月的缩写词%H
- 2位数年份%M
- 2位数小时(24小时格式)
%S
- 会议纪要In [46]: pd.to_datetime('29JAN14:21:16:00') #Not working Out[46]: '29JAN14:21:16:00' In [48]: pd.to_datetime('29JAN14:21:16:00',format='%d%b%y:%H:%M:%S') #Working Out[48]: Timestamp('2014-01-29 21:16:00')
- 秒钟
演示 -
function CalculateTime() {
try {
var originalStartTime = $('#startTime').val(),
originalEndTime = $('#endTime').val(),
originalBreakTime = $('#breakTime').val();
// breaking hours and minutes. needed format: HH:mm
var startHours = originalStartTime.substring(0, 2).replace(':', ''),
startMinutes = originalStartTime.substring(3, 5),
endHours = originalEndTime.substring(0, 2).replace(':', ''),
endMinutes = originalEndTime.substring(3, 5);
// momentJs variables
var mStart = moment().hour(startHours).minute(startMinutes),
mEnd = moment().hour(endHours).minute(endMinutes),
mBreak = moment.duration(originalBreakTime);
var result = mEnd.subtract(mStart).subtract(mBreak).format('HH:mm');
$('#workedHours').val(result);
} catch (err) {
$('#workedHours').val(err);
}
}