首页 > 解决方案 > 如何对包含数组的列求和

问题描述

我有一个问题来总结每个单元格中包含数组的数据框的列。 数据框 我尝试使用 df.sum() 对列进行汇总,期望得到总列数组,例如“common”列的 [4,1,1,4,1]。但我只有一个空系列。

df_sum = df.sum()
print(df_sum)

Series([], dtype: float64)

在这种情况下如何获得汇总列?

标签: pythonarrayspandasdataframesum

解决方案


好吧,object dtypes在 pandas 中使用 DataFrames 通常不是一个好主意,尤其是用 python 列表填充单元格,因为你会失去性能。

不过,您可以通过使用来完成此操作itertools.chain.from_iterable

df.apply(lambda s: list(it.chain.from_iterable(s.dropna())))

您也可以使用sum,但我会说它更慢

df.apply(lambda s: s.dropna().sum())

我可以理解为什么你会认为df.sum会在这里工作,即使是skipna=True明确设置,但矢量化df.sum在这种情况下会表现出奇怪的行为。但是话又说回来,这些是使用带有列表的 DataFrame 的缺点


推荐阅读