使用Python基于日期时间返回日出和日落时间

使用Python基于日期时间返回日出和日落时间,python,pandas,datetime,timezone,Python,Pandas,Datetime,Timezone,我的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

我的
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

我不知道怎么做。尝试,我不知道如何实现它没有包
时区
。返回我无法解决的错误。使用Python 2时,我没有检查它。适用于列表中的城市,但不适用于我的城市。

您可以从中检索日落和日出时间。 你所需要的只是知道你的纬度和经度。如果您不知道它们,可以从
geopy
lib检索它们:

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

这适用于列表中的城市,但不适用于我的城市
-查找与您所在时区相同的城市。@Alderven Just时区太宽;e、 g.中国是一个巨大的时区,但有着截然不同的天文时间。你引用一个链接说它不起作用,因为没有名为
时区的软件包。但是这个链接说:“使用了一个默认的datetime,它是用timezone模块中的LocalTimezone对象初始化的。我在这里没有提供这个模块,但是您可以通过复制Python文档中的示例来实现一个非常简单的模块”,所以我认为说它不起作用有点过分了。你们并没有真正尝试让它工作。@deceze这取决于需要的神秘行动。@Alderven市的同一时区是不够的。这一点也很重要。