添加Pandas系列列表

2024-09-29 02:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有熊猫系列物品的清单。我想把所有这些序列加起来,这样具有相同索引的行将其值相加,而具有唯一索引的行将被添加。除了访问第一个Series对象并遍历并使用Series add函数之外,还有没有更简洁的方法来完成这项工作?我知道对于数据帧的连接,可以传递一个数据帧对象的列表,但我还没有找到类似的方法来以这种方式添加序列。在

背景:我有非常大的数据集,每个数据集被分解成数据帧块。对于每个数据帧块,我对每一列都做了一个值计数,得到了一个序列,基本上得到了一个列表列表。使用list comprehension,我可以一次获得所有块的一个列,但是我需要将这些值加在一起。在

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...

Tags: 数据对象方法in列表foris序列
1条回答
网友
1楼 · 发布于 2024-09-29 02:22:11

^{}+^{}

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

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

^{}+^{}

reduce解决方案是通用的,因为adder可以替换为任意函数。对于求和,还可以通过串联系列来首先创建数据帧:

^{pr2}$

相关问题 更多 >