微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何合并具有不同日期时间索引的两个pandas时间序列对象?

例如,我有两个不相交的时间序列对象

-ts1

 Date           Price
 2010-01-01     1800.0
 2010-01-04     1500.0
 2010-01-08     1600.0
 2010-01-09     1400.0
 Name: Price, dtype: float64

-ts2

 Date           Price
 2010-01-02     2000.0
 2010-01-03     2200.0
 2010-01-05     2010.0
 2010-01-07     2100.0
 2010-01-10     2110.0

我如何将两者合并为一个应按日期排序的时间序列?喜欢

-ts3

 Date           Price
 2010-01-01     1800.0
 2010-01-02     2000.0
 2010-01-03     2200.0
 2010-01-04     1500.0
 2010-01-05     2010.0
 2010-01-07     2100.0
 2010-01-08     1600.0
 2010-01-09     1400.0
 2010-01-10     2110.0

解决方法:

使用pandas.concatDataFrame.append连接在一起,然后使用DataFrame.sort_values按列Date,最后用于认索引DataFrame.reset_index,参数drop = True:

df3 = pd.concat([df1, df2]).sort_values('Date').reset_index(drop=True)

替代方案:

df3 = df1.append(df2).sort_values('Date').reset_index(drop=True)
print (df3)
         Date   Price
0  2010-01-01  1800.0
1  2010-01-02  2000.0
2  2010-01-03  2200.0
3  2010-01-04  1500.0
4  2010-01-05  2010.0
5  2010-01-07  2100.0
6  2010-01-08  1600.0
7  2010-01-09  1400.0
8  2010-01-10  2110.0

编辑:

如果TimeSeries然后解决方案是简化:

s3= pd.concat([s1, s2]).sort_index()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐