如何基于A列分组值填充同组B列null值生成新列C
实现方案
你可以根据你使用的工具选择对应的实现方式,核心逻辑是:每个A值仅对应一个固定的B非空值,直接提取该值填充到所有同A值的行C列即可。
Excel/在线表格工具
在C列第一行数据单元格输入以下公式,下拉填充全列即可:
=IF(A2="orange","x","y")
如果不想硬编码x、y,需要自动匹配现有表内的非空值,可使用MAXIFS函数:
=MAXIFS(B:B,A:A,A2)
SQL
假设表名为data_table,两种写法均可:
写法1(可扩展,无需硬编码取值)
SELECT A, B, MAX(B) OVER (PARTITION BY A) AS C FROM data_table
写法2(逻辑直观)
SELECT A, B, CASE A WHEN 'orange' THEN 'x' WHEN 'blue' THEN 'y' END AS C FROM data_table
Python Pandas
假设数据表对应DataFrame名为df:
写法1(可扩展)
df['C'] = df.groupby('A')['B'].transform('max')
写法2(硬编码映射)
df['C'] = df['A'].map({'orange': 'x', 'blue': 'y'})
内容的提问来源于stack exchange,提问作者puncherello
相关产品推荐
相关产品推荐

