Skip to main content
 首页 » 编程设计

python之根据值替换 DataFrame 中的行

2025年05月04日16lonelyxmas

我想替换数据中的整行,前提是该行中的一列满足条件。 即红色是数据框

['1' 0.0 ' P'] 
['2' 0.0 ' S'] 
['3' 64  ' M'] 
['4' 70  ' M'] 
 
 
 
red=red.replace(to_replace=' M', value=0) 

返回结果:

['1' 0.0 ' P'] 
['2' 0.0 ' S'] 
['3' 64  0] 
['4' 70  0] 

但我希望它返回:

['1' 0.0 ' P'] 
['2' 0.0 ' S'] 
['3' 0  0] 
['4' 0  0] 

请您参考如下方法:

使用loc过滤掉要归零的DataFrame部分,然后为其赋值。下面,它选择所有 c 列值是 'M' 的行,它获取从 b 到 c 的所有列>,并将此选择的值设置为 0:

df = pd.DataFrame([['1', 0.0, 'P'], 
    ...: ['2', 0.0, 'S'], 
    ...: ['3', 64,  'M'], 
    ...: ['4', 70,  'M'],], columns=['a', 'b', 'c']) 
 
df.loc[df['c']=='M','b':'c'] = 0 
 
df 
Out[54]:  
   a  b  c 
0  1  0  P 
1  2  0  S 
2  3  0  0 
3  4  0  0