我有一个从sqlite3查询创建的熊猫数据框date_win。 看起来像这样:

             0
0   2011-01-29
1   2011-03-19
2   2011-05-07
3   2011-02-19
4   2011-03-12
5   2011-01-22
6   2011-04-17

我想对其进行迭代以获取日期,将其转换为unix并将其放入Dark Sky API中。 当我得到日期并将其分配给变量并放入日期时间转换时,错误是:

ValueError:时间数据'0 2011-01-29 \\ nName:0,dtype:object'与格式'%Y-%m-%d'不匹配

我试过使用此for循环: for i in range(0,len(date_win)):

并且: for i in date_win:

这是我的完整代码段:

for i in range(0,len(date_win)):

    s = str(date_win.iloc[i])


    dt = round(time.mktime(datetime.datetime.strptime(s, "%Y-%m-%d").timetuple()))
    dt = str(dt)
    resp = requests.get('https://api.darksky.net/forecast/[my_key]/52.52,13.4050,' + dt)
    data=resp.json()
    print(data['currently']['summary'])

这是错误代码:

ValueError:时间数据'0 2011-01-29 \\ nName:0,dtype:object'与格式'%Y-%m-%d'不匹配

如果我在api请求中使用s = "2011-01-01"或硬代码,则api调用有效。 我只是没有正确地进行迭代。

#1楼 票数:0

您可以使用strftime将一列格式化的日期字符串输出到列表中

例如

d = ['2009-08-19',
    '2005-06-04',
    '2003-04-05']
​
df = pd.DataFrame(d, columns=['dates'])
df['dates'] = pd.to_datetime(df['dates'])  

         dates
0   2009-08-19
1   2005-06-04
2   2003-04-05

dates = df['dates'].dt.strftime('%Y-%m-%d').values

通过在系列中使用.valuesdates将是格式化字符串的简单python列表,然后您可以正常循环遍历并将其应用于API。

如果您想将字符串保留在数据框中,则可以分配另一列

df['formatted'] = df['dates'].dt.strftime('%Y-%m-%d')

值得一提的是,您可以使用itupuples或类似方法在数据帧上循环。

  ask by amenoren translate from so

未解决问题?本站智能推荐:

3回复

检查日期是否属于数据框熊猫

我有一个日期数据框: 我无法检查其中是否包含给定日期: 什么是最好的检查呢? 回答以下一些评论: 使用值不能解决问题: 我不认为这是iloc返回行而不是值的问题
2回复

在数据框中转换日期

我有一个数据框,它是伦敦警察的制止和搜索范围; “日期”列中有条目,例如2019-10-01T04:31:39+00:00 2019-10-01T04:31:39+..在每行中,我试图提取日月和年以便开始分析。 任何人都可以帮助我做到这一点吗?
1回复

识别熊猫数据框中的重叠事件(日期时间记录)

我在尝试检测数据集中重叠的start_datetime和end_datetime时遇到了困难。 目前我的数据集如下所示 但我试图去 生成数据集的原始代码 有没有一种方法(有效或低效)来检测重叠而不对列进行排序?
2回复

熊猫数据框日期时间到时间再到秒

我有一个数据框。 一列包含时间戳。 我想删除日期并将时间转换为秒。 首先,我将它们转换为日期时间: 然后我删除了日期: 但是它们变成了对象,因此我没有设法将它们转换为类似datetime的对象以将它们转换为秒。 我知道我也通过了一些类似的话题。 我先感谢您的帮助
2回复

在数据框中将时间偏移列添加到另一个日期时间列

我有一个包含以下信息的数据框: 我想为 Departure time 创建另一列,其中包括 Departure Offset 作为日期时间格式中的偏移量。 我试过这个但没有成功
2回复

如何使用熊猫获取两个日期之间的天数

我正在尝试使用以下函数获取两个日期之间的天数 结果看起来像这样 153 天 10:16:46.294037 但我希望它说153 。 我该如何处理?
2回复

如何获取pandas中两列之间的日期范围信息

我有一列日期,我将其分成两列日期, DATE_1和DATE_2 。 我一直试图找到一种方法来获取每个日期的年份周数和该范围内每个日期的星期几,不包括DATE_2例如: 我想得到 天数的显示方式可以是全名也可以是对应特定天数的数值,最重要的是数据存在于某处。 我知道熊猫有 date_rang
1回复

将数据框从长到宽转换,同时保留值的顺序(dtype datetime)

我有一个称为df的数据df ,看起来与此类似(除了与每个Client ID相关联的“ Visit Date列中的条目数最多为74,并且有数百个唯一的Client IDs Client ID我在这里进行了简化)。 我想将其从长到宽转换,如下所示: 我尝试了以下代码: 它产生