如何在DataFrame同一列中按行累加对应数值?
实现方式
你可以通过以下几种方式对total_volumes列中各行的对应数值进行累加:
方法一:拆分列后求和
先将列表类型的列拆分为两个独立列,再分别计算总和:
import pandas as pd # 把列表拆成timestamp和volume两列 df[['timestamp', 'volume']] = df['total_volumes'].apply(pd.Series) # 计算对应数值的累加结果 total_timestamp = df['timestamp'].sum() total_volume = df['volume'].sum()
这种方式的好处是拆分后的列可以用于后续其他分析操作。
方法二:直接遍历累加
初始化两个变量,遍历列中每个列表元素,分别累加对应位置的数值:
total_ts = 0 total_vol = 0 for item in df['total_volumes']: total_ts += item[0] total_vol += item[1]
这种方式逻辑直观,不需要额外生成新列。
方法三:列表推导式结合sum函数
用列表推导式提取所有对应位置的数值,再用sum()计算总和:
# 提取所有第一个元素和第二个元素 timestamps = [x[0] for x in df['total_volumes']] volumes = [x[1] for x in df['total_volumes']] # 计算累加结果 total_ts = sum(timestamps) total_vol = sum(volumes)
这种写法简洁高效,适合快速计算总和。
内容的提问来源于stack exchange,提问作者Habi
相关产品推荐
相关产品推荐

