python - 如何对包含数组的列求和
问题描述
我有一个问题来总结每个单元格中包含数组的数据框的列。 我尝试使用 df.sum() 对列进行汇总,期望得到总列数组,例如“common”列的 [4,1,1,4,1]。但我只有一个空系列。
df_sum = df.sum()
print(df_sum)
Series([], dtype: float64)
在这种情况下如何获得汇总列?
解决方案
好吧,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 的缺点
推荐阅读
- java - 在使用 Hibernate 和 Spring Boot 进行实体继承的情况下,如何避免多重创建 FK 约束
- php - 访问嵌套 JSON 参数
- kotlin - 如何使用谓词列表过滤集合
- android - 播放存储在 Kotlin 资产目录中的 mp3 文件
- bootstrap-5 - bootstrap 5 carousel 仅在第一次单击下一步后才开始自动滑动
- pytorch - 函数 AddmmBackward 返回了一个无效的梯度
- reactjs - 使用 useRoutes() 进行转换
- sql - 从 Oracle 中的逗号分隔变量中删除重复值
- html - 为什么跨度> 1的css网格的某些单元格缩小到0px,而跨度为1的单元格却没有
- python - 遍历列表元素 - python