Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
String 从datetime列中减去str列_String_Pandas_Datetime - Fatal编程技术网

String 从datetime列中减去str列

String 从datetime列中减去str列,string,pandas,datetime,String,Pandas,Datetime,我们无法从当前时间列中减去时间列,因为它们的格式不同:Y-d-m HMS和Y-m-d HMS。我们不能改变时间栏中的阅读顺序。因此,我们必须更改当前列的时间格式,并将其作为datetime对象 我们尝试了pd.to_datetime(df['Our time column']),但是这将当前列按相同顺序排列:ex:2019-05-08 05:58:00 df['lenghtofstay']= (df['Current time']-df['Our time column']) df['lengh

我们无法从当前时间列中减去时间列,因为它们的格式不同:Y-d-m HMS和Y-m-d HMS。我们不能改变时间栏中的阅读顺序。因此,我们必须更改当前列的时间格式,并将其作为datetime对象

我们尝试了
pd.to_datetime(df['Our time column'])
,但是这将当前列按相同顺序排列:
ex:2019-05-08 05:58:00

df['lenghtofstay']= (df['Current time']-df['Our time column'])
df['lenghtofstay'].head()

错误答案
98天07:50:02.393562

当前时间:2019-08-1413:54:40.303740

我们的时间专栏:05-08-2019 05:58


当前时间-我们的时间列:新列:9天xx:xx:xx

如果列
我们的时间列
中的所有值都具有格式
Y-d-m H:m:S
,则可以通过
格式
参数指定:

df = pd.DataFrame({'Current time':['2019-08-14 13:54:40.303740','2019-05-10 05:58:00'],
                   'Our time column':['2019-05-08 05:58:00','2019-06-04 05:58:00']})

df['Current time'] = pd.to_datetime(df['Current time'],)
df['Our time column'] = pd.to_datetime(df['Our time column'], format='%Y-%d-%m %H:%M:%S')

df['lenghtofstay']= (df['Current time']-df['Our time column'])
print (df)
                Current time     Our time column           lenghtofstay
0 2019-08-14 13:54:40.303740 2019-08-05 05:58:00 9 days 07:56:40.303740
1 2019-05-10 05:58:00.000000 2019-04-06 05:58:00       34 days 00:00:00
执行两次
pd.to_datetime()
以使两列的格式相同

df['Current time']= pd.to_datetime(df['Current time'],format='%Y-%m-%d %H:%M:%S').dt.strftime('%Y-%d-%m %H:%M:%S')
df['Current time']= pd.to_datetime(df['Current time'],format='%Y-%d-%m %H:%M:%S')

然后您可以进行差值计算

谢谢您的回答。“我们的时间列”日期的格式为:05-08-2019 05:58名称:我们的时间列,数据类型:object,和格式=“%d-%m-%Y%H:%m,很遗憾,无法工作。如果要将此格式更改为工作的一次性数据“05-08-2019 05:58”与格式“%Y-%d-%m%H:%m'oops,对不起-
格式=“%m-%d-%Y%H:%m”)
或者如果第一天“
格式=“%d-%m-%Y%H:%m”)
或尝试参数
dayfirst=True
安装
格式