2017-04-19 3 views
0

Ich habe zwei Serien, die die gleichen zugrunde liegenden Daten, aber eine ist vierteljährlich (mit mehr Backhistory) und die zweite ist monatlich. Ich möchte die monatlichen Daten mit vierteljährlichen Daten wieder zusammenfügen, so dass ich eine einzige Serie zurückbekomme, die die beiden kombiniert. Was ist der "Pandas" Weg dies zu tun? Ich habe die vierteljährlichen Daten bereits auf monatlich neu abgetastet.Spleißen zusammen Serie in Pandas

Beispielcode:

ts1 = pd.Series(data=1, index=pd.DatetimeIndex(freq="Q", start="2000-03-31", end="2016-03-31")).resample("M").last().ffill() 
ts2 = pd.Series(data=2, index=pd.DatetimeIndex(freq="M", start="2012-01-31", end="2016-03-31")) 

Ich möchte das Ergebnis ts1 vor 2012-01-31 und ts2 nach sein.

Antwort

2

Für diesen speziellen Fall können Sie combine_first verwenden:

ts2.combine_first(ts1) 

Damit werden die Werte von ts2 nehmen, wenn beide Reihen die gleichen Indizes enthalten, und von ts1 wenn nur ts1 diesen Index hat.

können Sie auch pd.concat verwenden:

pd.concat((ts1[:'20120130'], ts2)) 

pd.concat((ts1[:'20120130'], ts2)).equals(ts2.combine_first(ts1)) 
Out: True