1

当我尝试以下操作时:

# Define the mapping
def my_float_to_string(f):
  return "{:g}".format(f)

# This returns numpy.float64
type(my_xls['Subject'][0])

my_df['foo'] = my_df['foo'].map(float_to_string)

我得到:

ValueError: Unkonwn format code 'g'for object of type 'str'

但是,以下效果很好

test = my_float_to_string(5.0)
print test 
'5'

为什么我无法在我的 Series对象上逐元素应用我的函数?

另外,为什么 DataFrames 和 Series 对元素操作有不同的方法名称(即map Series 与applymapDataFrames)

4

1 回答 1

1

使用时

my_df['foo'] = my_df['foo'].map(float_to_string)

float_to_string接收一个字符串而不是一个浮点数。检查您是否可以添加一个

assert(isinstance(f, float))

float_to_string.

于 2013-07-26T18:09:38.870 回答