如何在 Pandas 中合并 2 个系列
How do you Merge 2 Series in Pandas
我有以下内容:
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'])
注意:没有索引重叠
可以使用concat()
,它会自动执行外连接:
pd.concat([s1, s2])
结果:
A 1
B 2
C 3
D 4
dtype: int64
@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)
应该return:
A 1
B 2
C 3
D 4
dtype: int64
我有以下内容:
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'])
注意:没有索引重叠
可以使用concat()
,它会自动执行外连接:
pd.concat([s1, s2])
结果:
A 1
B 2
C 3
D 4
dtype: int64
@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)
应该return:
A 1
B 2
C 3
D 4
dtype: int64