将具有不同索引的数据框添加到时间序列

Posted

技术标签:

【中文标题】将具有不同索引的数据框添加到时间序列【英文标题】:Adding dataframe with different index to time series 【发布时间】:2020-09-14 11:29:23 【问题描述】:

我有一个类似的时间序列

             var
date 
2020-03-10   77
2020-03-11   88
2020-03-12   99 

我还有另一个与上述时间序列大小完全相同的数据框

        mean 
0        12
1        13
2        14 

我想将这个平均列添加到上述时间序列中

             var    mean
date 
2020-03-10   77      12
2020-03-11   88      13
2020-03-12   99      14

我尝试搜索但没有任何结果。

【问题讨论】:

另见Copying a column from one DataFrame to another gives NaN values? 【参考方案1】:

您可以分配 numpy 数组以防止数据对齐(创建列填充缺失值,因为不同的索引值):

df1 = df1.assign(mean = df2['mean'].to_numpy())

或者:

df1['mean'] = df2['mean'].to_numpy()

另一个想法是更改df2 中的索引与df1 相同,因此可以使用DataFrame.join

df2 = df2.set_index(df1.index)
df1 = df1.join(df2)

【讨论】:

以上是关于将具有不同索引的数据框添加到时间序列的主要内容,如果未能解决你的问题,请参考以下文章

熊猫将时间间隔重叠到时间序列

如何将数据点添加到时间序列线图中以突出显示事件?

将特征添加到时间序列预测模型输入的适当方法

Python将前导零添加到时间字段[重复]

熊猫数据框日期时间到时间然后到秒

从 mysql 中提取每日数据更改并部署到时间序列数据库