Я использую Python 2.7.8 | Anaconda 2.1.0. Я задаюсь вопросом, почему странное поведение ниже происходитСтранное поведение при добавлении столбцов
создать панд dataframe с двумя столбцами, а затем добавить третий столбец путем суммирования первых двух столбцов
x = pd.DataFrame(np.random.randn(5, 2), columns = ['a', 'b'])
x['c'] = x[['a', 'b']].sum(axis = 1) #or x['c'] = x['a'] + x['b']
Out[7]:
a b c
0 -1.644246 0.851602 -0.792644
1 -0.129092 0.237140 0.108049
2 0.623160 0.105494 0.728654
3 0.737803 -1.612189 -0.874386
4 0.340671 -0.113334 0.227337
Все хорошо до сих пор. Теперь я хочу, чтобы установить значение столбец с к нулю, если они являются отрицательными
x[x['c']<0] = 0
Out[9]:
a b c
0 0.000000 0.000000 0.000000
1 -0.129092 0.237140 0.108049
2 0.623160 0.105494 0.728654
3 0.000000 0.000000 0.000000
4 0.340671 -0.113334 0.227337
Это дает желаемый результат в колонке 'c'
, но по каким-то причине столбцов 'a'
и 'b'
были изменены - я не хочу этого произойдет. Мне было интересно, почему это происходит и как я могу исправить это поведение?
'' x.loc [х [ 'с'] <0, 'с'] = 0'' – joris