1

条件を満たしている行の 1 つの列を条件として、データの行全体を置き換えたいと考えています。つまり、赤はデータフレームです

['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]
4

1 に答える 1

6

locゼロにする DataFrame の部分を除外するために使用し、それに値を割り当てます。以下では、c列の値がであるすべての行を選択し、 からまで'M'のすべての列を取得し、この選択の値を に設定します。bc0

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
于 2013-10-17T12:38:45.727 に答える