如何基于另一DataFrame索引过滤pandas DataFrame并插入整行零?
基于DataFrame索引的行替换方案
可以实现需求,通过pandas的索引定位功能就能快速完成。以下是具体实现步骤和代码:
1. 创建示例数据
先还原问题中的两个DataFrame:
import pandas as pd # 第一个DataFrame df1 = pd.DataFrame( data=[[1,1,1,1], [1,1,1,1], [0,0,0,0], [1,1,1,1]], index=['A', 'B', 'C', 'D'], columns=['C1', 'C2', 'C3', 'C4'] ) # 第二个DataFrame df2 = pd.DataFrame( data=[[1,1,1,1]], index=['A'], columns=['C1', 'C2', 'C3', 'C4'] )
2. 核心处理逻辑
提取第二个DataFrame的索引,直接定位第一个DataFrame中对应索引的行并赋值为0:
# 获取需要替换为0的索引集合 target_indexes = df2.index # 对df1中目标索引的行整行置0 df1.loc[target_indexes] = 0
3. 输出结果
执行后得到的df1即为期望输出:
C1 C2 C3 C4 A 0 0 0 0 B 1 1 1 1 C 0 0 0 0 D 1 1 1 1
这种方法利用pandas的矢量化操作,无需循环遍历,处理效率高,适合各种规模的数据集。
内容的提问来源于stack exchange,提问作者Noorulain Islam
相关产品推荐
相关产品推荐

