2

インデックスとして日時列を持つ2つの時系列があります。

2012-08-10 1.1       2012-08-10 1.1
2012-08-11 1.2       2012-08-11 1.2
2012-08-12 1.8       2012-08-13 1.1
2012-08-14 1.4       2012-08-15 1.3
2012-08-15 1.7       2012-08-16 1.1
2012-08-17 1.6       2012-08-17 1.2
2012-08-18 1.1       2012-08-18 1.1

それらを比較し、両方に存在する日付を持つ2つの時系列を取得する方法:

2012-08-10 1.1       2012-08-10 1.1
2012-08-11 1.2       2012-08-11 1.2
2012-08-15 1.7       2012-08-15 1.3
2012-08-17 1.6       2012-08-17 1.2
2012-08-18 1.1       2012-08-18 1.1
4

2 に答える 2

5
In [52]: s1.align(s2, join='inner')
Out[52]:
(2012-08-10    1.1
2012-08-11    1.2
2012-08-15    1.7
2012-08-17    1.6
2012-08-18    1.1,
 2012-08-10    1.1
2012-08-11    1.2
2012-08-15    1.3
2012-08-17    1.2
2012-08-18    1.1)
于 2012-10-02T10:13:08.560 に答える
1

使用join

$ cat in1
2012-08-10 1.1
2012-08-11 1.2
2012-08-12 1.8
2012-08-14 1.4
2012-08-15 1.7
2012-08-17 1.6
2012-08-18 1.1
$ cat in2
2012-08-10 1.1
2012-08-11 1.2
2012-08-13 1.1
2012-08-15 1.3
2012-08-16 1.1
2012-08-17 1.2
2012-08-18 1.1
$ join in1 in2
2012-08-10 1.1 1.1
2012-08-11 1.2 1.2
2012-08-15 1.7 1.3
2012-08-17 1.6 1.2
2012-08-18 1.1 1.1

編集:両方のファイルを再度分割する場合は、次のようにします。

$ join in1 in2 | awk '{print $1, $2}' > out1
$ join in1 in2 | awk '{print $1, $3}' > out2
$ cat out1
2012-08-10 1.1
2012-08-11 1.2
2012-08-15 1.7
2012-08-17 1.6
2012-08-18 1.1
$ cat out2
2012-08-10 1.1
2012-08-11 1.2
2012-08-15 1.3
2012-08-17 1.2
2012-08-18 1.1

私は小さなツールが大好きです:)

于 2012-10-02T09:32:04.373 に答える