将新行添加到现有数据框/系列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将新行添加到现有数据框/系列相关的知识,希望对你有一定的参考价值。

我的数据集的最后4条记录如下所示:

date    Outbound

11/26/2017 21:00    175.5846438
11/26/2017 22:00    181.1182961
11/26/2017 23:00    112.011672
11/27/2017 00:00    43.99501014

我完成了我的Out of Sample预测,并预测了接下来的7个输出,即11月27日01:00,02:00等等。我的预测是这样的列表形式:[100,120,130 .. ..]

如何将预测与日期一起添加到我的数据框或系列中,因为我需要绘制数据...

答案

您可以从附加列表中创建一个新的DataFrame,然后将其与现有列表合并。我认为最简单的是,如果您将数据作为字典列表提供,也包含日期索引。即类似的东西(我假设df_original是带有原始值的数据框):

import datetime
import pandas

# Calculating your predictions (this should be replaced with an 
# appropriate algorithm that matches your case)

latest_entry = df_original.iloc[-1]
latest_datetime = latest_entry['date']

# We assume lastest_datetime is a Python datetime object.
# The loop below will create 10 predictions. This should be adjusted to make
# sense for your program. I'm assuming the function `compute_prediction()`
# will generate the predicted value. Again, this you probably want to tweak
# to make it work in your program :) 
# The computed predictions will be stored inside a list of dicts.

predictions = list()

for _ in range(10):
    predicted_date = latest_datetime + datetime.timedelta(hours=1)
    predicted_value = compute_prediction()

    tmp_dict = {
        'date': predicted_date, 'Outbound': predicted_value
    }
    predictions.append(tmp_dict)

# Convert the list of dictionaries into a data frame.
df_predictions = pandas.DataFrame.from_dict(predictions)

# Append the values of your new data frame to the original one.
df_concatenated = pandas.concat(df_original, df_predictions)

当然,date中使用的predictions密钥需要与原始数据框中使用的密钥类型相同。由此产生的df_concatenated将两个数据帧放在一起。要绘制结果,您可以调用df_concatenated.plot()(或调用您需要的相应绘图函数)。

您可以找到有关合并多个数据框架here的更多详细信息。

以上是关于将新行添加到现有数据框/系列的主要内容,如果未能解决你的问题,请参考以下文章

如何在不覆盖现有记录的情况下将新行添加到数据表

根据条件在现有列中添加新行

迭代循环并将列表添加到新行或新列中的数据框

如何在按钮单击时将新行添加到数据库中的jTable而不清除现有行

如何将包含现有行和新行的新列添加到表中?

如何根据基于数据框的两个或多个条件在 MultiIndex 数据框中添加新行