python - 如何使用 pd.concat 在 For 循环中将多个 DataFrame 合并在一起

标签 python python-3.x pandas concatenation

我正在使用 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/

相关文章:

python - Django 管理后保存方法 - 怎么做?

python - Tic-Tac-Toe 游戏 Python 的 for 循环中的迭代是如何工作的?

Python CLI 不断执行相同的命令?

python - 在 ForeignKey 上设置 unique=True 与使用 OneToOneField 具有相同的效果

python - 如何最好地将包含列表或元组的 Pandas 列提取到多个列中

python - 无法在 Python 中为非平方整数编码

python - 在Python中生成具有不同属性的新对象实例

python - Pandas 通过从重复的行值交换列值进行数据透视

python - 使用条件 cumsum 的自定义聚合

python - 如何找到第一个非零元素和最后一个非零元素并修剪它