You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于df1索引生成新DataFrame:仅保留df2中值为1的单元格

解决方案:生成符合指定规则的DataFrame

核心实现思路

构建一个与df1索引、列结构完全一致的新DataFrame,默认所有单元格为0,仅保留df2中值为1的单元格对应位置的取值,完全忽略df1的实际数据。以下是两种简洁的实现方式:


方法1:全0初始化 + 精准位置更新

先创建和df1结构匹配的全0DataFrame,再将df2中值为1的部分填充到对应位置:

import pandas as pd

# 创建与df1索引、列一致的全0DataFrame
result = pd.DataFrame(0, index=df1.index, columns=df1.columns)
# 仅保留df2中值为1的内容,填充到result对应位置
result.loc[df2.index, df2.columns] = df2.where(df2 == 1, 0)

# 验证是否符合预期
print(result.equals(expected_output))  # 输出 True

方法2:过滤后重新索引

先过滤df2仅保留值为1的单元格(其余设为0),再将其索引对齐到df1的索引,空缺位置填充0:

# 过滤df2值为1的内容,重新索引到df1的结构并补0
result = df2.where(df2 == 1, 0).reindex(df1.index, fill_value=0)

# 验证是否符合预期
print(result.equals(expected_output))  # 输出 True

适配题目假设说明

基于题目给出的前提条件:

  • df1与df2列名完全一致
  • df2的索引是df1索引的子集
  • 两个DataFrame的取值仅为0或1
    上述两种方法都能稳定生成符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:05:06