如何使用DataFrame的条件子集替换其中的指定索引行?
Pandas 替换指定行实现方法
- 核心逻辑:把索引为0的待替换行替换为所有
Category列值为A的行,本质是拆分数据块后按目标顺序重新拼接 - 具体操作步骤:
- 筛选出
df1中Category列取值为'A'的所有行 - 剔除原
df1中索引为0的行,得到剩余数据段 - 先放筛选出的A类行,再接上剔除首行后的剩余数据,重置索引即可得到目标结果
- 筛选出
对应实现代码:
import pandas as pd # 筛选Category为A的所有行 rows_a = df1[df1['Category'] == 'A'] # 剔除索引为0的行,连续默认索引场景下也可写成 df_rest = df1.iloc[1:] df_rest = df1.drop(index=0) # 拼接数据并重置索引 df_final = pd.concat([rows_a, df_rest], ignore_index=True)
运行后得到的df_final结构和给出的目标结构完全一致,行顺序、取值都能匹配。
注意:如果你的DataFrame索引不是连续默认值,不要用
iloc[1:]切片,用drop(index=0)的方式更稳妥,避免误删数据。
内容的提问来源于stack exchange,提问作者user11555536
相关产品推荐
相关产品推荐

