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

如何将DataFrame中的三行数据合并为一行?附示例与预期结果

解决方法:合并多行非缺失值为一行

嗨,这事儿用Pandas很容易搞定!你的需求是把三行中各自非NaN的列值合并成一行,刚好每一列都只有一个有效数值,我们可以利用这个特点快速处理。

第一步:还原你的原始DataFrame(如果已经有数据可跳过)

先把你给出的结构用代码复现,方便后续测试验证:

import pandas as pd
import numpy as np

# 构造原始数据
df = pd.DataFrame({
    'a': [np.nan, 45, np.nan],
    'b': [np.nan, 31, np.nan],
    'c': [np.nan, 85, np.nan],
    'd': [15, np.nan, np.nan],
    'e': [23, np.nan, np.nan],
    'f': [71, np.nan, np.nan],
    'g': [np.nan, np.nan, 52],
    'h': [np.nan, np.nan, 66],
    'i': [np.nan, np.nan, 28]
})

第二步:合并多行到一行

这里有两种简洁的实现方式,选哪种都能达到预期效果:

方法1:利用max()快速提取每列有效数值

因为每一列只有一个非NaN值,max()会直接返回这个唯一的有效数值,再转成DataFrame即可:

merged_df = pd.DataFrame(df.max()).T

方法2:用agg()明确提取非缺失值

如果想更清晰地表达逻辑,可以用agg()遍历每一列,删除缺失值后取第一个(也是唯一一个)值:

merged_df = df.agg(lambda col: col.dropna().iloc[0]).to_frame().T

最终结果

运行上述代码后,merged_df就会得到你想要的结果:

a   b   c   d   e   f   g   h   i
0  45  31  85  15  23  71  52  66  28

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:01:34