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

Python中如何用另一列开头值填充指定列末尾NaN并合并为单列

实现方法

核心逻辑:你的需求本质是按顺序拼接A列非空值、B列非空值,得到新的单列结果,以下是不同工具的常用实现方案:

1. Python(Pandas库)

import pandas as pd
import numpy as np

# 构造示例数据
df = pd.DataFrame({
    'A': [1,2,3,np.nan,np.nan,np.nan],
    'B': [4,5,6,np.nan,np.nan,np.nan]
})

# 实现方式1:直接拼接两列非空值,适用性最广
result = pd.DataFrame({
    'A': pd.concat([df['A'].dropna(), df['B'].dropna()], ignore_index=True)
})

# 实现方式2:用B列非空值填充A列空值,更贴合你描述的"填充"逻辑
df['A'] = df['A'].fillna(df['B'].dropna().reset_index(drop=True))
result = df[['A']].dropna()

2. Excel

手动操作

  • 复制A列所有非空数值,粘贴到新列
  • 复制B列所有非空数值,粘贴到新列刚才内容的末尾

公式自动实现

新列第一行(假设为C1单元格)输入如下公式,下拉填充6行即可:

=IF(ROW()<=COUNTA(A:A),INDEX(A:A,ROW()),INDEX(B:B,ROW()-COUNTA(A:A)))

3. R语言

# 构造示例数据
df <- data.frame(
  A = c(1,2,3,NA,NA,NA),
  B = c(4,5,6,NA,NA,NA)
)

# 拼接两列非空值得到结果
result <- data.frame(
  A = c(na.omit(df$A), na.omit(df$B))
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:09:04