根据值替换DataFrame中的行

Ash*_*ton 1 python replace dataframe pandas

我想替换数据中的整行,但要满足该条件的行中的一列.即红色是数据帧

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



red=red.replace(to_replace=' M', value=0)
Run Code Online (Sandbox Code Playgroud)

返回结果:

['1' 0.0 ' P']
['2' 0.0 ' S']
['3' 64  0]
['4' 70  0]
Run Code Online (Sandbox Code Playgroud)

但我希望它能回归:

['1' 0.0 ' P']
['2' 0.0 ' S']
['3' 0  0]
['4' 0  0]
Run Code Online (Sandbox Code Playgroud)

Bou*_*oud 6

使用loc过滤掉你想零数据框的部分,然后将值分配给它.下面,它选择所有行,其中c列的值是'M',它需要从所有列bc,并设定该选择的值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
Run Code Online (Sandbox Code Playgroud)