Home > Software engineering >  How can i calculate for Average true range in pandas
How can i calculate for Average true range in pandas

Time:04-18

how can I calculate the Average true range in a data frame

I have tried to using np where() and is not working

I have all this value below

Current High - Current Low

abs(Current High - Previous Close)

abs(Current Low - Previous Close)

but I don't know how I to set the highest between the three value to the pandas data frame

CodePudding user response:

It looks like you might be trying to do the following :

import pandas as pd
from numpy.random import rand

df =  pd.DataFrame(rand(10,5),columns={'High-Low','High-close','Low-close','A','B'})

cols = ['High-Low','High-close','Low-close']
df['true_range'] = df[cols].max(axis=1)
print(df)

The output will look like

   High-Low  Low-close         B         A  High-close  true_range
0  0.916121   0.026572  0.082619  0.672000    0.605287    0.916121
1  0.622589   0.944646  0.638486  0.905139    0.262275    0.944646
2  0.611374   0.756191  0.829803  0.828205    0.614956    0.756191
3  0.810638   0.501693  0.504800  0.069532    0.283825    0.810638
4  0.984463   0.900823  0.434061  0.905273    0.518056    0.984463
5  0.377742   0.480266  0.018676  0.383831    0.819448    0.819448
6  0.473753   0.652077  0.730400  0.305507    0.396969    0.652077
7  0.427047   0.733135  0.526076  0.542852    0.719194    0.733135
8  0.911629   0.633997  0.101848  0.020811    0.327233    0.911629
9  0.244624   0.893365  0.278941  0.354696    0.678280    0.893365

If this isn't what you had in mind, it would be helpful to clarify your question by providing a small example where you clearly identify the columns and the index in your DataFrame and what you mean by "true range".

  • Related