Как избавиться от «AttributeError: объект« float »не имеет атрибута« log2 »» - PullRequest
0 голосов
/ 13 мая 2019

Скажем, у меня есть фрейм данных со столбцами min value = 36884326.0 и max value = 6619162563.0, который мне нужно построить как блочный график, поэтому я попытался зарегистрировать преобразования значений следующим образом:

diff["values"]     = diff['value'].apply(lambda x: (x+1))
diff["log_values"] = diff['values'].apply(lambda x: x.log2(x))

Однако вышеприведенные строки выдают ошибку следующим образом:

AttributeError                            Traceback (most recent call last)
<ipython-input-28-fe4e1d2286b0> in <module>
      1 diff['value'].max()
      2 diff["values"]     = diff['value'].apply(lambda x: (x+1))
----> 3 diff["log_values"] = diff['values'].apply(lambda x: x.log2(x))

~/software/anaconda/lib/python3.7/site-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds)
   3192             else:
   3193                 values = self.astype(object).values
-> 3194                 mapped = lib.map_infer(values, f, convert=convert_dtype)
   3195 
   3196         if len(mapped) and isinstance(mapped[0], Series):

pandas/_libs/src/inference.pyx in pandas._libs.lib.map_infer()

<ipython-input-28-fe4e1d2286b0> in <lambda>(x)
      1 diff['value'].max()
      2 diff["values"]     = diff['value'].apply(lambda x: (x+1))
----> 3 diff["log_values"] = diff['values'].apply(lambda x: x.log2(x))

AttributeError: 'float' object has no attribute 'log2'

Любые предложения будут хорошими.Спасибо

1 Ответ

1 голос
/ 13 мая 2019

Вам нужна функция numpy.log2, пожалуйста, проверьте синтаксис здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...