从字符串Pandas数据框中提取日期

时间:2015-09-29 06:52:41

标签: python datetime pandas

我在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

1 个答案:

答案 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);
    }
}