Power Query技术问询:基于多单元格条件逻辑提取行值
动态列数据处理实现方案
如果用Python的pandas库处理这类数据,直接用下面的代码就能搞定所有需求:
筛选动态列:先找出除
Custom外的所有列dynamic_cols = [col for col in df.columns if col != 'Custom']类型转换+空值/错误值处理:把动态列转成数值类型,无法转换的内容和空值都替换成空字符串
df[dynamic_cols] = df[dynamic_cols].apply( lambda x: pd.to_numeric(x, errors='coerce').fillna('') )新增最大值列:计算每行动态列的最大值,全为空的行显示空字符串
df['Max_Value'] = df[dynamic_cols].replace('', float('nan')).max(axis=1).fillna('')
关键逻辑说明
pd.to_numeric(errors='coerce')会把像"1 EA"这类非数值内容转成NaN,再用fillna('')统一替换为空字符串,同时搞定空值和错误值的处理。- 计算最大值前,要先把空字符串转回
NaN(不然没法做数值运算),用max(axis=1)取每行的最大值后,再把结果里的NaN(对应所有动态列都是空的行)转回空字符串。
这套代码不管动态列有多少个,都能自动适配,完全符合你的要求。
内容的提问来源于stack exchange,提问作者Anushka A
相关产品推荐
相关产品推荐

