gpt4 book ai didi

pandas - 在 Pandas 中连接系列丢弃重叠索引

转载 作者:行者123 更新时间:2023-12-01 13:15:00 25 4
gpt4 key购买 nike

假设我有以下三个具有重叠索引的系列

s1 = pd.Series(data=np.arange(5))
s2 = pd.Series(data=np.arange(5),index=np.arange(2,7))
s3 = pd.Series(data=np.arange(5),index=np.arange(5,10))

我希望将它们串联成一个系列;但是,我希望从具有“最新”索引的系列中获取重叠索引中的数据值。

因此在玩具箱中输出将是:

0    0
1 1
2 0
3 1
4 2
5 0
6 1
7 2
8 3
9 4
dtype: int32

这也可以看作是在每个系列与下一个系列重叠的地方切割每个系列,然后连接起来。当可能有很多系列的大长度时,有没有一种快速有效的方法可以在 pandas 中执行此操作。

编辑

我正在寻找一种高效的方法来执行此操作,因为实际上 Series 的长度和数量都很大,分别约为 100k 和 10k。

最佳答案

想法是使用 concatenate 来展平 Series 的索引和值,并按 Series.duplicated 过滤通过 ~ 反转掩码:

def new1(series):
b = [x.index for x in series]
v = np.concatenate(series)
i = np.concatenate(b)

mask = ~pd.Series(i).duplicated(keep='last')
return pd.Series(v[mask], index=i[mask])

关于pandas - 在 Pandas 中连接系列丢弃重叠索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55923937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com