我正在检查NYC MVA数据集。我通过结合CRASH TIME
和CRASH DATE
重写了CRASH TIME
列:
df['CRASH TIME'] = (df['CRASH DATE'] + ' ' + df['CRASH TIME']).apply(lambda x: dt.datetime.strptime(x, '%m/%d/%Y %H:%M'))
df = df.drop('CRASH DATE', axis=1)
我有一个字符串,其中包含来自日出/日落API的24小时数据。我正在尝试提取日出和日落数据并将其转换为日期时间对象。
我编写了一个函数来执行API调用:
def get_sunrise_sunset(sun, date):
'''
get sunrise/sunset information
'''
api_link = 'https://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400&date={}'.format(date.strftime('%Y-%m-%d'))
r = requests.get(api_link)
time = r.json()['results'][sun][:-3]
if sun == 'sunset':
time = '1' + str(int(time[0])+2) + time[1:]
dt_time = dt.datetime.strptime(time, '%H:%M:%S').time()
return dt_time
我现在打算将此功能应用于数据集,创建名为SUNRISE
和SUNSET
的新列。我尝试使用以下apply()
进行此操作:
df['SUNRISE'] = df.apply(lambda x: get_sunrise_sunset(sun='sunrise', date=x['CRASH TIME']), axis=1)
不幸的是,这似乎已停滞不前-我将其整夜运行,但12小时后仍未完成。我假设这是由于lambda
-apply()
的书写不正确造成的。我该如何正确实施呢?