当我尝试以下操作时:
# 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
用于系列与applymap
用于DataFrames
答案 0 :(得分:1)
使用时
my_df['foo'] = my_df['foo'].map(float_to_string)
float_to_string
收到一个字符串而不是浮点数。检查您是否可以添加
assert(isinstance(f, float))
float_to_string
中的。