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

如何按单元格合并两个同尺寸的Pandas DataFrame?

同尺寸DataFrame单元格合并实现方案

pd.merge()、pd.join()和pd.concat()都是用于行/列维度的拼接操作,无法实现单元格内部的多值合并,你可以用以下几种方式实现需求:

方法1:列表推导式+Zip遍历

直接遍历两个DataFrame的每一行和每个元素,将对应位置的整数和浮点数组成元组,再重构为新DataFrame:

import pandas as pd

# 示例数据
df_int = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])
df_float = pd.DataFrame([[0.1, 0.2], [0.3, 0.4]], columns=['A', 'B'])

# 合并单元格
df_combined = pd.DataFrame(
    [[(i_val, f_val) for i_val, f_val in zip(i_row, f_row)]
     for i_row, f_row in zip(df_int.values, df_float.values)],
    index=df_int.index,
    columns=df_int.columns
)

运行后每个单元格会存储(整数, 浮点数)形式的元组。

方法2:Applymap批量处理

通过applymap给每个单元格单独包装成元组,再利用元组的加法合并:

# 先将每个单元格转为单元素元组
df_int_tuple = df_int.applymap(lambda x: (x,))
df_float_tuple = df_float.applymap(lambda x: (x,))

# 元组相加得到双元素元组
df_combined = df_int_tuple + df_float_tuple

这种写法更简洁,适合大尺寸DataFrame的批量处理。

方法3:扁平化后重组

先将两个DataFrame的所有元素扁平化,Zip配对后再重塑为原形状:

# 扁平化并配对元素
paired_vals = list(zip(df_int.values.flatten(), df_float.values.flatten()))
# 按原DataFrame的行列数重塑
df_combined = pd.DataFrame(
    [paired_vals[i:i+df_int.shape[1]] for i in range(0, len(paired_vals), df_int.shape[1])],
    index=df_int.index,
    columns=df_int.columns
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:05:12