首页 > 解决方案 > 使用 Python 根据日期时间返回日出和日落时间

问题描述

df的是这样的。

DateTime            Pdc
01/04/2016 10:00    1
01/04/2016 10:05    2
02/04/2016 10:10    3
02/04/2016 10:15    4
03/04/2016 10:20    5
03/04/2016 10:25    6
03/04/2016 10:30    7

我想根据下面的日期添加两列日出时间和日落时间df作为示例:

DateTime            Pdc  Sunrise  Sunset
01/04/2016 10:00    1    time     time
01/04/2016 10:05    2    time     time
02/04/2016 10:10    3    time     time
02/04/2016 10:15    4    time     time
03/04/2016 10:20    5    time     time
03/04/2016 10:25    6    time     time
03/04/2016 10:30    7    time     time

我不知道该怎么做。尝试这个,我不知道如何在没有包的情况下实现它timezone。我无法解决此返回错误。适用于 Python 2,我没有检查它。适用于列表中的城市,但不适用于我的城市。

标签: pythonpandasdatetimetimezone

解决方案


您可以从https://sunrise-sunset.org/api检索日落和日出时间。您只需要知道您的纬度和经度。如果您不认识它们,您可以从geopylib 中检索它们:

import requests
from geopy.geocoders import Nominatim

location = Nominatim().geocode('Moscow')
r = requests.get('https://api.sunrise-sunset.org/json', params={'lat': location.latitude, 'lng': location.longitude}).json()['results']
print('Sunrise:', r['sunrise'])
print('Sunset:', r['sunset'])

输出:

Sunrise: 3:30:56 AM
Sunset: 3:42:58 PM

推荐阅读