# [Numpy-discussion] Column-Specific Conditions and Column-Specific Substitution Values

Tue Mar 23 08:42:13 CDT 2010

```Hi Everyone,
a beginner's question on how to perform some data substitution efficiently.
I have a panel dataset, or in other words x individuals observed over a
certain time span. For each column or individual, I need to substitute a
certain value anytime a certain condition is satisfied. Both the condition
and the value to be substituted into the panel dataset are individual
specific. I can tackle the fact that the condition is individual specific
but I cannot find a way to tackle the fact that the value to be substituted
is individual specific without using a for – lop. Frankly, considering the
size of the dataset the use of a for loop is perfectly acceptable in terms
of the time needed to complete task but still it would be nice to learn a
way to do this (a task I implement often) in a more efficient way.
Cristiano

import numpy as np
from copy import deepcopy
Data = np.array([[0,4,0],
[2,5,7],
[2,5,6]])
EditedData = deepcopy(Data)
Condition = np.array([0, 5, 6])     # individual-specific condition
SubstituteData = np.array([1, 10,100])
# The logic here
# if the value of any obssrvation for the 1st individual is 0, substitute 1,
#                                     the 2nd individual is 5, substitute 10
#                                     the 3rd individual is 6, substitute
100

# This wouldn't a problem if SubstituteData was not individual specific Data
# eg EditedData[Data==Condition] = 555
# As SubstituteData is individual specifc, I need to use a for loop
for i in range(np.shape(EditedData)[1]):
TempData = EditedData[:, i]  # I introduce TempData to increase