Pandas如何将DataFrame子列行与主列匹配值对齐得到规整数据
解决方案
直接处理现有out的方法
按keys_master字段分组,合并同组内的非空值即可,代码如下:
out = out.groupby('keys_master', as_index=False).first(numeric_only=True)
更简洁的初始生成方案(推荐)
你可以跳过原来的循环拼接逻辑,直接用pivot方法一步生成目标表,避免中间产生冗余行:
# 按key索引、variable列维度展开所有字段 out = df.pivot_table( index='key', columns='variable', values=['key', 'i', 'j', 'k'], aggfunc='first' ) # 调整列名格式为「字段名+变量标识」 out.columns = [f'{col[0]}{col[1]}' for col in out.columns] # 重置索引得到keys_master列 out = out.reset_index(names='keys_master').reset_index(drop=True)
两种方法运行后都能得到你需要的结果。
内容的提问来源于stack exchange,提问作者Allen
相关产品推荐
相关产品推荐

