Как избежать NaN в средневзвешенном?

Один из способов - создать объект DateTime и использовать его для форматирования:

new DateTime(myTimeSpan.Ticks).ToString(myCustomFormat)

// or using String.Format:
String.Format("{0:HHmmss}", new DateTime(myTimeSpan.Ticks))

Так я знаю. Я надеюсь, что кто-то может предложить лучший способ.

0
задан boboo 18 January 2019 в 17:18
поделиться

2 ответа

Я не уверен, что есть простой способ позаботиться о nan значениях. Возможно, вам придется создать собственную функцию скалярного произведения для обработки этих значений. Примерно так может работать:

df.apply(lambda x: (x * [1, 0, 0]).sum())

Метод pandas sum автоматически игнорирует значения nan, поэтому вам не нужно явно находить значения самостоятельно. Скорее всего, вы замените [1, 0, 0] ссылкой на какой-то другой массив ваших весов. Я не уверен, как вы организовали это сейчас, чтобы интегрировать его в вышеприведенное предложение.

0
ответ дан busybear 18 January 2019 в 17:18
поделиться

Если значение NaN во внутреннем продукте должно означать «вес = 0», то перед выполнением вычисления измените ваш фрейм данных следующим образом:

df_without_nans = df.fillna(value=0.0)  # 'value' can be dropped
dot_product = df_without_nans.T.dot(w)
0
ответ дан Håkon T. 18 January 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: