You need to enable JavaScript to run this app. 如何对齐DataFrame两列相同项并补全缺失单元格数值
优惠活动
大模型
产品
解决方案
定价
更多

如何对齐DataFrame两列相同项并补全缺失单元格数值

实现方法(Python Pandas)

首先导入依赖库:

import pandas as pd
import numpy as np

先构造你给出的原始DataFrame示例:

# 构造原始数据
df = pd.DataFrame({
    'plot1': ['a', 'b', 'c', 'd', 'e'],
    'data': [25, 46, 21, 32, 1],
    'plot2': ['c', 'e', 'j', np.nan, np.nan],
    'data2': [28.0, 18.0, 66.0, np.nan, np.nan],
    'data3': [13.0, 12.0, 24.0, np.nan, np.nan]
})

然后按以下步骤处理:

  • 第一步:提取plot1和plot2的所有非空唯一标识,生成完整的索引列表
all_labels = pd.concat([df['plot1'], df['plot2'].dropna()]).unique()
all_labels.sort() # 按字母顺序排序,和你给出的结果顺序一致
  • 第二步:处理左半部分(plot1和data列)
left = df[['plot1', 'data']].set_index('plot1').reindex(all_labels, fill_value=0).reset_index()
left.columns = ['plot1', 'data']
  • 第三步:处理右半部分(plot2、data2、data3列),先剔除plot2为空的行再重索引
right = df[['plot2', 'data2', 'data3']].dropna(subset=['plot2']).set_index('plot2').reindex(all_labels, fill_value=0).reset_index()
right.columns = ['plot2', 'data2', 'data3']
  • 第四步:按列拼接两个处理好的表,得到最终结果
result = pd.concat([left, right], axis=1)

打印result即可得到你需要的输出,所有缺失值默认填充为0,标识完全对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 15:36:04