gpt4 book ai didi

python - 根据匹配前两个字符查找两列之间的分钟差异

转载 作者:行者123 更新时间:2023-11-30 21:55:54 25 4
gpt4 key购买 nike

我有这个数据框,我试图找到 Date1 和 Date2 之间的分钟差异(如果前两个字符相同)并为此创建一个列。例如,第一行,22 = 22,然后找到 20:27:45 和 20:52:03 之间的差异

         Date1     Date2        ID     City
0 22 20:27:45 22 20:52:03 76 Denver
1 02 20:16:28 02 20:49:02 45 Austin
2 15 19:35:09 15 20:52:44 233 Chicago
3 30 19:47:53 30 20:18:01 35 Detroit
4 09 19:01:52 09 19:45:26 342 New York City

这是我迄今为止尝试过的:

(pd.to_datetime(data['Date1'].str[3:]).dt.minute - pd.to_datetime(data['Date2'].str[3:]).dt.minute)

这工作正常,但我想在此处添加该条件。我尝试创建一个函数:

def f(data):
if data['Date1'][:3] == data['Date2'][:3]:
return pd.to_datetime(data['Date1'][3:]).dt.minute - pd.to_datetime(data['Date2'][3:]).dt.minute

出现错误:

AttributeError: ("'Timestamp' object has no attribute 'dt'", 'occurred at index 0')

我知道将 pd.to_datetime 添加到系列对象中是没有意义的,但如何将其转换为时间戳并找出以分钟为单位的差异?

最佳答案

假设您的日期列当前是字符串,您可以解析全天的小时:分钟:秒字符串,然后根据时间戳的日期属性进行应用

我更改了其中一个值的日期,以演示如果日期不相等会发生什么

def diff_func(x):
date_1 = pd.to_datetime(x.Date1, format='%d %H:%M:%S')
date_2 = pd.to_datetime(x.Date2, format='%d %H:%M:%S')
if date_1.day == date_2.day:
return (date_2-date_1).seconds / 60
else:
return None

df['minute_difference'] = df.apply(diff_func, axis=1)



Date1 Date2 minute_difference
0 22 20:27:45 22 20:52:03 24.300000
1 03 20:16:28 02 20:49:02 NaN
2 15 19:35:09 15 20:52:44 77.583333
3 30 19:47:53 30 20:18:01 30.133333
4 09 19:01:52 09 19:45:26 43.566667

关于python - 根据匹配前两个字符查找两列之间的分钟差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55641565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com