You can use numpy.log instead. Math.log is expecting a single number, not array.
You can use lambda operator to apply your functions to the pandas data frame or to the series. More specifically if you want to convert each element on a column to a floating point number, you should do it like this:
df[‘A’].apply(lambda x: float(x))
here the lambda operator will take the values on that column (as x) and return them back as a float value.