Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将范围时间数据转换为datetime,将pandas中的datetime转换为_datetime_Python_Datetime_Pandas - Fatal编程技术网

Python 将范围时间数据转换为datetime,将pandas中的datetime转换为_datetime

Python 将范围时间数据转换为datetime,将pandas中的datetime转换为_datetime,python,datetime,pandas,Python,Datetime,Pandas,我有一个数据框“DTime”列,其中包含日期和时间数据: 01JAN2004 00:00-01:00 01JAN2004 01:00-02:00 我尝试使用以下方法进行分析: pd.to_datetime(df['DTime'], format='%d%b%Y %H:%M-%H:%M') 但这给了: error: redefinition of group name 'H' as group 6; was group 4 我已尝试删除“-H:M”,但这会导致“未转换的数据错

我有一个数据框“DTime”列,其中包含日期和时间数据:

    01JAN2004 00:00-01:00
    01JAN2004 01:00-02:00
我尝试使用以下方法进行分析:

pd.to_datetime(df['DTime'], format='%d%b%Y %H:%M-%H:%M')
但这给了:

error: redefinition of group name 'H' as group 6; was group 4
我已尝试删除“-H:M”,但这会导致“未转换的数据错误”

有没有办法做到这一点并将时基设置为给定的第一个小时?

df=pd.DataFrame([
df = pd.DataFrame([
        '01JAN2004 00:00-01:00',
        '01JAN2004 01:00-02:00'
        ], columns=['dstr'])

date_regex = '(?P<date>\d\d\w{3}\d{4})'
beg_regex = '(?P<beg_hour>\d\d):(?P<beg_min>\d\d)'
end_regex = '(?P<end_hour>\d\d):(?P<end_min>\d\d)'
regex = '{} {}-{}'.format(date_regex, beg_regex, end_regex)
d1 = df.dstr.str.extract(regex, expand=True)
for c in ['beg_hour', 'beg_min', 'end_hour', 'end_min']:
    d1[c] = d1[c].astype(int)

pd.concat([
        pd.to_datetime(d1.date, format='%d%b%Y') + \
        pd.to_timedelta(d1.beg_hour, unit='H'),
        pd.to_datetime(d1.date, format='%d%b%Y') + \
        pd.to_timedelta(d1.beg_hour, unit='H')
    ], axis=1, keys=['Beg', 'End'])
“2004年1月1日00:00-01:00”, “2004年1月1日01:00-02:00” ],列=['dstr']) date_regex='(?P\d\d\w{3}\d{4})' beg_regex='(?P\d\d):(?P\d\d)' end_regex='(?P\d\d):(?P\d\d)' regex='{}{}-{}'。格式(date_regex,beg_regex,end_regex) d1=df.dstr.str.extract(regex,expand=True) 对于[beg_hour]、[beg_min]、[end_hour]、[end_min]中的c: d1[c]=d1[c].aType(int) 海螺([ pd.to_datetime(d1.date,格式=“%d%b%Y”)+\ 局部放电至时间增量(d1.1小时,单位为小时), pd.to_datetime(d1.date,格式=“%d%b%Y”)+\ 局部放电至时间增量(d1.1小时,单位为小时) ],轴=1,键=['Beg','End'])

您需要确定最终的df应该是什么样子,您是否希望从这个范围中选择2个日期时间?Beg and end或者您只想要开放时间?仅在这种情况下开放时间。谢谢,我以前没有使用/看到过这样的解决方案。我只需要乞讨的时间,但这对未来是有用的