2014-11-11 4 views
1

두 개의 시리즈 series1series2이 있습니다. 팬더 인덱스 확장, 새 인덱스 값이 0이되는 곳

series1 

은 (그러나 시리즈 1에서 시리즈 2의 것) series2. 나는 기본적으로 첫 번째 시리즈에 그 새로운 인덱스 값을 추가 할

의 인덱스의 하위 집합 인 인덱스가 그들을 수 있습니다 0 값.

+1

(1) 무엇을'series1'와'series2'에 대한 추가 정보를 제공하세요 (2) 지금까지 시도한 코드와 비슷합니다. – N1B4

+0

그것은 간단합니다 ... S1 : 1 2 3. S2 : 1 2 3 4. 비슷한 인덱스를 사용하므로 s1이 인덱스 4와 값 0을 갖는 4 번째 행을 가지기를 바랍니다 – robertevansanders

답변

3

s1에서 설정 작업 등의 일을위한 몇 가지 기본 방법을 판다를 값을 지정합니다. svenkatesh에 의해 조롱 예제 데이터에서 작업, 우리는 s1s2 인덱스의 조합을 얻고, 채우기 값을 제공 할 수 있습니다

import pandas as pd 
s1 = pd.Series(range(1, 10), index=range(0,9)) 
s2 = pd.Series(range(1, 4), index=range(0,3)) 
# `|` represents the union operation 
# This is not an inplace operation by default, so 
# you need to assign the result back to `s2` if 
# you want to keep the changes 
s2.reindex(s2.index | s1.index, fill_value=0) 
Out[53]: 
0 1 
1 2 
2 3 
3 0 
4 0 
5 0 
6 0 
7 0 
8 0 
dtype: int64 
1

귀하가 귀하의 의견에 제시 한 예를 사용하여 두 개의 샘플 시리즈 s1s2을 작성합니다. 여기에서 각각 공통 색인에 대해 동일한 값을 갖습니다. 인덱스 값 NOT s2에서 s1뿐만 PRESENT, 나는 Index 객체는 0

In [1]: import pandas as pd 

In [2]: s1 = pd.Series(range(1, 10), index=range(0,9)) 

In [3]: s1 
Out[3]: 
0 1 
1 2 
2 3 
3 4 
4 5 
5 6 
6 7 
7 8 
8 9 
dtype: int64 

In [4]: s2 = pd.Series(range(1, 4), index=range(0,3)) 

In [5]: s2 
Out[5]: 
0 1 
1 2 
2 3 
dtype: int64 

In [6]: join = ~((s1.index.isin(s2.index))) 

In [7]: join 
Out [7]: array([False, False, False, True, True, True, True, True, True], dtype=bool) 

In [8]: s1.loc[join] = 0 

In [9]: s1 
Out [9]: 
0 1 
1 2 
2 3 
3 0 
4 0 
5 0 
6 0 
7 0 
8 0 
dtype: int64