0

Trying to calculate slope on SMA

df.date = pd.to_datetime(df.date)
df['date_ordinal'] = pd.to_datetime(df['date']).map(dt.toordinal)
slope, intercept, r_value, p_value, std_err = stats.linregress(df['date_ordinal'], df['SMA'])
df['slope'] = slope

Why slope is NaN? Dataframe:

   date        open   high   low    close  volume  token   SMA        serial    ate_ordinal  slope
0  2021-07-05  59.15  60.75  58.75  59.85  219009  168456        NaN      26        737976    NaN
1  2021-07-06  59.90  63.90  59.90  61.40  345452  168456        NaN      25        737977    NaN
2  2021-07-07  61.65  62.90  60.70  61.75  120200  168456        NaN      24        737978    NaN
3  2021-07-08  61.00  63.80  61.00  61.85  173059  168456        NaN      23        737979    NaN
4  2021-07-09  62.20  62.60  61.00  61.30   80536  168456        NaN      22        737980    NaN
5  2021-07-12  61.30  65.50  61.30  64.25  433789  168456        NaN      21        737983    NaN
6  2021-07-13  65.05  66.75  65.00  65.80  343672  168456        NaN      20        737984    NaN
7  2021-07-14  66.70  66.70  63.25  64.60  186786  168456        NaN      19        737985    NaN
8  2021-07-15  64.95  66.70  64.00  64.55  267449  168456        NaN      18        737986    NaN
9  2021-07-16  65.00  69.45  63.60  65.15  824427  168456        NaN      17        737987    NaN
10 2021-07-19  65.55  70.00  65.55  67.60  506566  168456  63.463636      16        737990    NaN
11 2021-07-20  68.90  69.15  65.60  66.25  345355  168456  64.045455      15        737991    NaN
12 2021-07-22  67.50  67.90  66.05  66.65  101745  168456  64.522727      14        737993    NaN
13 2021-07-23  67.50  67.55  64.60  65.05  176110  168456  64.822727      13        737994    NaN
14 2021-07-26  65.40  65.80  63.35  63.95  114623  168456  65.013636      12        737997    NaN
15 2021-07-27  64.00  64.90  62.50  62.95  124095  168456  65.163636      11        737998    NaN
16 2021-07-28  63.80  63.80  60.20  62.85  110505  168456  65.036364      10        737999    NaN
17 2021-07-29  63.50  64.50  63.00  64.20   58880  168456  64.890909       9        738000    NaN
18 2021-07-30  64.00  68.65  62.70  66.50  505882  168456  65.063636       8        738001    NaN
19 2021-08-02  66.70  68.40  66.20  66.60  191472  168456  65.250000       7        738004    NaN
20 2021-08-03  67.50  69.90  65.55  67.45  581423  168456  65.459091       6        738005    NaN
21 2021-08-04  68.40  69.05  65.00  65.90  177188  168456  65.304545       5        738006    NaN
22 2021-08-05  66.50  66.50  63.50  63.75  112842  168456  65.077273       4        738007    NaN
23 2021-08-06  64.20  66.60  64.00  66.25  102939  168456  65.040909       3        738008    NaN
24 2021-08-09  67.40  67.40  63.25  63.90   88957  168456  64.936364       2        738011    NaN
25 2021-08-10  65.45  65.45  59.00  60.30  202877  168456  64.604545       1        738012    NaN
Warren Weckesser
  • 110,654
  • 19
  • 194
  • 214
confused
  • 1
  • 2
  • is the column `ate_ordinal` or `date_ordinal`? – AmourK Sep 06 '21 at 15:56
  • 1
    You have to remove the NaN values from SMA https://stackoverflow.com/questions/13643363/linear-regression-of-arrays-containing-nans-in-python-numpy – AmourK Sep 06 '21 at 15:58

0 Answers0