我有以下内容:
s1 = pd.Series([1, 2], index=['A', 'B'])
s2 = pd.Series([3, 4], index=['C', 'D'])
我希望将s1
和s2
组合成s3
,其结果为:
s3 = pd.Series([1, 2, 3, 4], index=['A', 'B', 'C', 'D'])
NB:没有索引重叠。
@EdChum的解决方案很好,但是如果您不需要担心索引对齐,那么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
s1.append(s2)
A 1
B 2
C 3
D 4
dtype: int64
concat
进行合并:pd.concat([s1,s2])
,但是你需要一个真正的merge
吗?比如s1.to_frame().merge(s2.to_frame(), how='outer')
?这里的问题是,除非你添加列名,否则系列将没有列名。 - EdChum