pd.set_option('max_rows',12)
def f_ix(df):
df.ix[0,0] = 0
def f_loc(df):
df.loc[0,'A'] = 0
def f_iloc(df):
df.iloc[0,0] = 0
def f_at(df):
df.at[0,'A'] = 0
def f_iat(df):
df.iat[0,0] = 0
def f_numpy(df):
df.values[0,0] = 0
def cf():
return pd.DataFrame(np.random.randn(10000,2),columns=list('AB'))
df = cf()
%timeit -n 100 -r 1 f_ix(df)
100 loops, best of 1: 192 µs per loop
df = cf()
%timeit -n 100 -r 1 f_loc(df)
100 loops, best of 1: 149 µs per loop
df = cf()
%timeit -n 100 -r 1 f_iloc(df)
100 loops, best of 1: 188 µs per loop
df = cf()
%timeit -n 100 -r 1 f_at(df)
100 loops, best of 1: 18.1 µs per loop
df = cf()
%timeit -n 100 -r 1 f_iat(df)
100 loops, best of 1: 16.3 µs per loop
df = cf()
%timeit -n 100 -r 1 f_numpy(df)
100 loops, best of 1: 10.4 µs per loop
def f1(df):
na = df.values
for i in xrange(len(df)):
na[i,0] = 0
def f2(df):
for i in xrange(len(df)):
df.iat[i,0] = 0
def f3(df):
df.iloc[:,0] = 0
df = cf()
%timeit -n 100 -r 1 f1(df)
100 loops, best of 1: 1.44 ms per loop
df = cf()
%timeit -n 100 -r 1 f2(df)
100 loops, best of 1: 92.1 ms per loop
df = cf()
%timeit -n 100 -r 1 f3(df)
100 loops, best of 1: 353 µs per loop