2017-02-28 3 views
0

2 시리즈를 병합하려면 어떻게 :는 나는 다음과 같은 한 팬더

s1 = pd.Series([1, 2], index=['A', 'B']) 

s2 = pd.Series([3, 4], index=['C', 'D']) 

내가 s1을 결합하고 싶은 어떤 s2s3를 만들 :

s3 = pd.Series([1, 2, 3, 4], index=['A', 'B', 'C', 'D']) 

주의 : 인덱스 중복이 없다

+0

이 경우에는'concat' :'pd.concat ([s1, s2])'하지만 실제 병합 후에 있습니까? 's1.to_frame(). merge (s2.to_frame(), how = 'outer')'와 유사합니까? 여기서 문제는 하나를 추가하지 않으면 계열에 열 이름이 없다는 것입니다. – EdChum

+0

실제 병합이란 무엇입니까? –

+0

단지 2 개의 결합 된 1 개의 큰 시리즈를 만들려고하지 않습니다. –

답변

1

솔루션은 잘 작동하지만 인덱스 정렬에 대해 걱정할 필요가 없습니다 때 NumPy와 스태킹가 빠릅니다.

In [18]: pd.DataFrame(np.hstack((s1.values, s2.values)) , index=np.hstack((s1.index.values, s2.index.values))) 
Out[18]: 
    0 
A 1 
B 2 
C 3 
D 4 

In [19]: %timeit pd.concat([s1, s2]) 

1000 loops, best of 3: 1.31 ms per loop 

In [21]: %timeit pd.DataFrame(np.hstack((s1.values, s2.values) ), index=np.hstack((s1.index.values, s2.index.values))) 

10000 loops, best of 3: 214 µs per loop 
1

concat()을 사용할 수 있으며 자동으로 외부 조인을 실행합니다.

pd.concat([s1, s2]) 

결과 : @EdChum에서

A 1 
B 2 
C 3 
D 4 
dtype: int64