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

在Pandas中基于两个数组生成所有组合求和结果的DataFrame

最优实现方案(基于numpy广播,性能最高)

利用numpy底层的广播机制直接完成批量求和,全程在C层运算,性能远高于Python层遍历实现,代码非常简洁:

import pandas as pd
import numpy as np

arr1 = [1,2,3]
arr2 = [5,10]

# 将arr2转为列向量后与arr1做广播求和,直接生成符合要求的二维结果矩阵
result_matrix = np.array(arr2)[:, np.newaxis] + np.array(arr1)
# 转换为DataFrame,同时设置列名、索引为对应元素的字符串格式
df = pd.DataFrame(result_matrix, columns=map(str, arr1), index=map(str, arr2))

打印df即可得到你预期的输出:

123
5678
10111213

纯Pandas实现方案

如果不想引入numpy依赖,也可以用Pandas的内置加法运算实现:

import pandas as pd

arr1 = [1,2,3]
arr2 = [5,10]

# 分别构造行向量DataFrame和列向量DataFrame
df_row = pd.DataFrame([arr1], columns=arr1)
df_col = pd.DataFrame(arr2, index=arr2)
# 利用Pandas的广播加法得到结果
df = df_col.add(df_row)
# 调整列名和索引格式为字符串
df.columns = df.columns.astype(str)
df.index = df.index.astype(str)

两种方案都完全不需要写遍历逻辑,数组长度越大,性能优势越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:54:03