У меня есть вопрос относительно z-показателя в python. Я планирую рассчитать коэффициент покрытия-GPOA и генерировать его значения z-показателя в виде рядов.
Вот что я сделал:
#Profitablity
# GPOA
gpoa=(ccm_['revt']-ccm_['cogs'])/ccm_['at']
gpoa=np.array(gpoa)
gpoa_z=stats.zscore(gpoa)
print (gpoa)
print(gpoa_z)
Вот вывод:
[ 0.09561083 0.09561083 0.09561083 ..., 0.02845481 0.00311008 0. ]
[ nan nan nan ..., nan nan nan]
Первые несколько данных дал NAN, я могу понять. Это произошло потому, что данные постоянны, поэтому стандартное отклонение равно нулю, следовательно, не может быть параметром, что привело к NAN. Но, как вы можете видеть, следующие данные больше не являются постоянными, z-счет по-прежнему равен NAN.
Обновление 1:
Я изменил gpoa с series
на array
, а затем применил stats.zcore
, по-прежнему не работает.
Обновление 2:
#Profitablity
# GPOA
gpoa=(ccm_['revt']-ccm_['cogs'])/ccm_['at']
gpoa=np.array(gpoa, dtype=pd.Series)
gpoa_mean=np.mean(gpoa)
gpoa_std=np.std(gpoa)
gpoa_z=(gpoa-gpoa_mean)/gpoa_std
print(gpoa_z)
Все еще не работает. Вывод следующий:
[nan nan nan ..., nan nan nan]
мой gpoa_mean - это inf
, и он уже float64.
Я ценю вашу помощь!