我正在使用 Dark Sky API 和 darkskylib 库来创建纽约市的年度、每小时天气预报。
nyc.hourly 返回一个包含所有天气数据的 DataBlock,我可以从中调用接下来 24 小时的温度。
基本上,我的问题是变量holding似乎没有将两个日期的温度加在一起,而只是返回最后一个日期。我认为我的所有缩进都是正确的,但也许不是。
import time
import pandas as pd
from darksky import forecast
NYC = 'API Key',40.7128,-74.0060
from datetime import date, timedelta, datetime
l = 2
for i in range(0,l):
nyc = forecast(*NYC, time=date_list[i])
nyc.refresh(units='si', extend='hourly')
# change units to SI units
n = len(nyc.hourly)
temp = []
unix_time = []
year = []
# create a list of hourly temperatures for the day in question
for i in range(0,n):
hourly_temp = nyc.hourly[i].temperature
temp.append(hourly_temp)
year.append(temp)
holding = pd.DataFrame(temp)
final = pd.concat([holding], ignore_index=True)
注意;我在代码的开头定义了date_list,它有点长,但这就是它返回的内容,并且它的条目是字符串。
>>> date_list
['2016-01-01T00:00:00', '2016-01-02T00:00:00']
最佳答案
尝试这个设置。您需要存储所有 holding
数据帧并在最后将它们组合起来。字典是执行此操作的便捷方法。
holding = {}
l = 2
for i in range(0, l):
# perform calculations
holding[i] = pd.DataFrame(temp)
final = pd.concat(list(holding.values()), ignore_index=True)
关于python - 如何使用 pd.concat 在 For 循环中将多个 DataFrame 合并在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48704440/