熊猫时间序列和R动物园

时间:2014-08-28 15:58:11

标签: r pandas zoo

我真的陷入了这个愚蠢的任务:

我有两个熊猫时间序列。某些时间索引可能在它们之间有所不同。我想,因为这两个系列都摆脱了包含不同时间戳的线条,并且两者都只保留了具有共同时间戳的线条。

我对R中的两个动物园系列也有同样的问题。

举个例子,这是我的系列:

a = 2015-05-01 15.2
    2015-05-02 16.3
    2015-05-03 17.4
    2015-05-04 18.5
    2015-05-05 19.6

b = 2015-05-04 'a'
    2015-05-05 'b'
    2015-05-06 'c'

然后我想达到的结果是:

a = 2015-05-04 18.5
    2015-05-05 19.6        

b = 2015-05-04 'a'
    2015-05-05 'b'

因此,我只保留时间索引在旧系列的时间索引的交集中的行。如何与Pandas.Series完成?还有R动物园?

如果问题看起来很愚蠢,请原谅。我真的搜索了很多没有成功。顺便问一下,这个操作叫什么?合并?对准?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

在pandas中,有一个align操作,并且可以这样工作:

a, b = a.align(b, join='inner')

答案 1 :(得分:2)

在带动物园的R中,它将是:merge(a, b, all = FALSE, retclass = NULL)。请注意,(1)all=FALSE仅返回交集,(2)retclass=NULL通过将输出写回参数来返回合并的系列。

下面是一个自包含的可重现的例子。

# define inputs and read them into R as zoo objects

Lines.a = "2015-05-01 15.2
    2015-05-02 16.3
    2015-05-03 17.4
    2015-05-04 18.5
    2015-05-05 19.6"

Lines.b <- "2015-05-04 a
    2015-05-05 b
    2015-05-06 c"

library(zoo)
a <- read.zoo(text = Lines.a)
b <- read.zoo(text = Lines.b)

# merge the inputs and show result

merge(a, b, all = FALSE, retclass = NULL)

a
## 2015-05-04 2015-05-05 
      18.5       19.6 
b
## 2015-05-04 2015-05-05 
     a          b