Как избавиться от «AttributeError: объект« float »не имеет атрибута« log2 »»

Скажем, у меня есть фрейм данных со столбцами с 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 ответ


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


Есть идеи?

10000