加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 有效地组合多个熊猫系列

发布时间:2020-12-20 12:03:29 所属栏目:Python 来源:网络整理
导读:我知道我可以使用combine_first合并两个系列: series1 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])series2 = pd.Series([1,index=['f','g','h','i','j'])series3 = pd.Series([1,index=['k','l','m','n','o'])Combine1 = series1.combine_first(
我知道我可以使用combine_first合并两个系列:

series1 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
series2 = pd.Series([1,index=['f','g','h','i','j'])
series3 = pd.Series([1,index=['k','l','m','n','o'])

Combine1 = series1.combine_first(series2)
print(Combine1

输出:

a    1.0
b    2.0
c    3.0
d    4.0
e    5.0
f    1.0
g    2.0
h    3.0
i    4.0
j    5.0
dtype: float64

如果我需要合并3个或更多系列怎么办?

我理解使用以下代码:print(series1 series2 series3)产生:

a   NaN
b   NaN
c   NaN
d   NaN
e   NaN
f   NaN
...
dtype: float64

如果不多次使用combine_first,我可以有效地合并多个系列吗?

谢谢

解决方法

根据您的编辑,我认为您需要沿第一个轴连接,然后沿同一轴需要一个和.

def combine_multi(ser_list):
    return pd.concat([series1,series2,series3],1).fillna(0).sum(1)

例A(不同指数)

series1 = pd.Series([1,'o'])

out = combine_multi([series1,series3])
out

a     5.0
b    12.0
c    15.0
d     3.0
e     4.0
g     6.0
h     7.0
i     8.0
j     9.0
k    10.0
m    12.0
o    14.0
dtype: float64

例B(重叠指数)

series1 = pd.Series([1,'f'])

out = combine_multi([series1,series3])
out

a    2.0
b    6.0
c    6.0
d    8.0
e    5.0
f    5.0
i    4.0
j    5.0
k    1.0
m    3.0
dtype: float64

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读