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
相关产品推荐
相关产品推荐

