1

我们不能从当前时间列中减去我们的时间列,因为它们具有不同的格式:Ydm HMS 和 Ymd HMS。我们无法更改我们在时间栏中阅读的顺序。因此,我们必须更改当前列的时间格式并将其作为日期时间对象。

我们试过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 days 07:50:02.393562

当前时间:2019-08-14 13:54:40.303740

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

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

4

2 回答 2

1

如果列中的所有值Our time column都有格式,您可以通过参数Y-d-m H:M:S指定它:format

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
于 2019-08-14T12:26:56.767 回答
0

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')

然后你可以做差异计算

于 2019-08-14T12:28:58.000 回答