Edited at

Rの時系列ライブラリxtsでつまづいた処理をPythonで

xtsでいろいろ混在したカラムをapproxしたい場合

こちらで、ある種のバグに悩まされてできなかった処理をやむなくPythonでやりました。


before (R)

xts という時系列データフレームのうち、数値については、補完がうまくいきます。

filled <- na.approx(object = xts$numeric, xout = grid, rule = 2)

filled <- na.locf(object = as.zoo(xts$numeric), xout = grid, rule = 2)

といってもlocfについては、なぜかダウンキャストしないと動かないんですが。

文字列については以下のように書いたら行けそうですが、仕様上はありなのに、動作しません。

filled <- na.locf(object = xts$chr, xout = grid, rule = 2)

ワークアラウンドがいくつか書いて荒れましたが、文字列の場合とxoutを指定する場合には無理でした。


after (Python)

Python Pandas版です。難なく動きました。

filled = xts['numric'].interpolate()

filled = xts['numric'].ffill()

filled = xts['chr'].ffill()

Rのライブラリは細分化しすぎていて、一個一個のくせが強すぎる。。。

この手のETL処理はPythonにするに限りますね。


追記

以下にU-SQLで同様の処理を行う場合を上げておきます。

U-SQLでLOCF