python - 在 pandas 中使用 lambda 调用另一列
问题描述
我正在检查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
and的新列SUNSET
。我试图用以下方法做到这一点apply()
:
df['SUNRISE'] = df.apply(lambda x: get_sunrise_sunset(sun='sunrise', date=x['CRASH TIME']), axis=1)
不幸的是,这似乎停滞不前——我让它整夜运行,12 小时后仍未完成。我假设这是由于写错了lambda
- apply()
。我该如何正确实施呢?
解决方案
推荐阅读
- python - 使用两个列表创建均匀分布的点数组
- c# - 过程或函数“usp_GetVideoSelections”需要参数“@UserID”,但未提供该参数
- java - Json 通过 Grpc (Java)
- javascript - 如何计算两个日期之间的差异?javascript
- javascript - 为什么使用 JavaScript 中的 fetch API 获取请求中的 url 格式错误?
- reactjs - React 文件上传返回未定义
- javascript - 如何重新构建我的复杂 Json 响应以在 SectionList React native 中显示
- laravel - Laravel 8:未找到 InvalidArgumentException 视图 [auth.login]
- r - 在 hist() R 中获取直方图的密度 bin 值的索引
- node.js - 我可以检查我的机器人中的哪些文件给了我错误消息吗?