gpt4 book ai didi

python - 添加 Pandas 系列列表

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

我有一个 pandas 系列对象的列表。我想将所有这些系列相加,这样具有相同索引的行将把它们的值加在一起,而具有唯一索引的行将被添加。除了访问第一个 Series 对象并迭代并使用 Series add 函数之外,是否有更简洁的方法来执行此操作?我知道,对于数据帧的串联,可以传递数据帧对象的列表,但我还没有找到类似的方法来以这种方式添加系列。

背景:我有非常大的数据集,其中每个数据集都分为数据帧 block 。对于每个数据帧 block ,我在每列上执行了一个values_count,从而得到了一个系列并本质上得到了一个列表列表。使用列表理解,我可以一次获取所有 block 的一列,但我需要将这些 value_count 添加在一起。

for vcl in allvc:
#vcl is a list where each element is a list of value counts
lengthvcl = len(vcl)
for x in range(lengthvcl):
lst2 = [item(x) for item in vcl]
#what to do next...

最佳答案

reduce + pd.Series.add

通过functools.reducepd.Series.add可以实现一个基于Pandas的解决方案:

from functools import reduce, partial

s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5, 6, 7])
s3 = pd.Series([8, 9, 10, 11, 12])

adder = partial(pd.Series.add, fill_value=0)
res = reduce(adder, [s1, s2, s3])

print(res)

0 13.0
1 16.0
2 19.0
3 18.0
4 12.0
dtype: float64

pd.concat + pd.DataFrame.sum

reduce 解决方案是通用的,因为 adder 可以替换为任意函数。为了求和,您还可以首先通过连接您的系列来创建一个数据框:

res = pd.concat([s1, s2, s3], axis=1).sum(1)

关于python - 添加 Pandas 系列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53858393/

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