Skip to main content
 首页 » 编程设计

python之使用加法 (+) 运算符连接系列

2025年05月04日13EasonJim

所以这比我遇到的问题更像是一个问题。

我想.append() 一些 pandas 系列'在一起,没想到我只是做了 total=series1+series2+series3。

每个series的长度分别是2199902,171175,178989 sum(pd.isnull(i) for i in total) = 2214596

P.S 所有 3 个系列的开头都没有空值,这是否与合并 3 个不同长度的系列有关,从而产生缺失值?即使是这样,为什么还要创建 2,214,596 个空值?

请您参考如下方法:

如果您尝试追加 系列,那您就错了。 + 运算符调用 .add,最终添加系列中的每个对应元素。如果您的序列未对齐,则会导致生成大量 NaN。

如果您希望将它们附加到一个长系列中,您可以使用pd.concat:

pd.concat([s1, s2, s3], ignore_index=True) 
0     1 
1     2 
2     4 
3     5 
4     4 
5     7 
6    40 
7    70 
dtype: int64 

如果你打算使用append,你可以在一个循环中执行此操作,或者使用reduce:

s = s1 
 
for i in [s2, s3]: 
    s = s.append(i, ignore_index=True) 
 
s 
0     1 
1     2 
2     4 
3     5 
4     4 
5     7 
6    40 
7    70 
dtype: int64 
from functools import reduce 
 
reduce(lambda x, y: x.append(y, ignore_index=True), [s1, s2, s3]) 
 
0     1 
1     2 
2     4 
3     5 
4     4 
5     7 
6    40 
7    70 
dtype: int64 

这两种解决方案都很好地泛化到多个系列,但与 pd.concat 或 np.concatenate 相比,它们的速度较慢。