You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中按行计算各列元组首元素乘积并新增列R

解决方案

原始代码

import pandas as pd
import numpy as np
dataset ={ 
         "g1":[(1,2,3), (1,4,5),(6,5,8)],
         "g2":[(6,5,4),(9,6,4),(5,8,7)],
         "g3":[(2,5,6),(6,5,8),(5,8,6)]
}

df = pd.DataFrame(dataset, index=["g1", "g2", "g3"])

实现方法

方法1:逐行处理(直观易懂)

通过apply遍历每行,提取每个元组的第一个元素后计算乘积:

df['R'] = df.apply(lambda row: np.prod([t[0] for t in row]), axis=1)
print(df)

方法2:矢量化处理(高效适合大数据集)

先将所有元组的第一个元素提取为数值型DataFrame,再计算每行乘积:

# 提取所有元组的第一个元素
first_vals = df.applymap(lambda x: x[0])
# 计算每行乘积生成R列
df['R'] = first_vals.prod(axis=1)
print(df)

输出结果

g1          g2          g3    R
g1  (1, 2, 3)  (1, 4, 5)  (6, 5, 8)    6
g2  (6, 5, 4)  (9, 6, 4)  (5, 8, 7)  270
g3  (2, 5, 6)  (6, 5, 8)  (5, 8, 6)   60

内容的提问来源于stack exchange,提问作者bengisu yilmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:00:20