2013-06-06 13 views
7

同じ列であるが日時インデックスが異なる2つのデータフレームがあります。私はそれらのうちの1つをリサンプリングして、もう一方のインデックスを使用して、そのデータからのデータを転送するために、データがない他のインデックスの任意の日付に転送したいとします。別の時系列のインデックスを持つ時​​系列の再サンプリング

import pandas as pd 
import numpy as np 
from datetime import datetime as dt 

a_values = np.random.randn(4, 4) 
a_index = [dt(2012, 3, 16), dt(2012, 3, 19), dt(2012, 3, 20), dt(2012, 3, 21)] 
a = pd.DataFrame(data=a_values, index=a_index) 

b_values = np.trunc(np.random.randn(3, 4) * 1000) 
b_index = [dt(2012, 3, 16), dt(2012, 3, 19), dt(2012, 3, 21)] 
b = pd.DataFrame(data=b_values, index=b_index) 

c_insert = a.ix['2012-03-20'] 
c = b.append(c_insert).sort() 
c.ix['2012-03-20'] = c.ix['2012-03-19'] 

'a'は、再サンプリング参照としてインデックスを使用したいデータフレームを表します。 'b'は、再サンプリングしてデータを転送するデータフレームを表します。 'c'は結果が欲しいものを表します。

'b'には 'a'に存在する '2012-03-20'インデックスがありません。 'c'はインデックス '2012-03-20'の列にデータ 'b'のインデックス '2012-03-19'を入力します

パンダにはこれを行う機能がありますか?

ありがとうございます。

PIR

答えて

5

reindexを使用し、参照インデックスによって再サンプリングします。

In [11]: b.reindex(a.index, method='ffill') 
Out[11]: 
       0  1  2  3 
2012-03-16 -926 -625 736 457 
2012-03-19 -1024 742 732 -1020 
2012-03-20 -1024 742 732 -1020 
2012-03-21 1090 -1163 1652 -94 
+4

'b.reindex_like(a、method = 'ffill')'も使用できます。 –