将元素地图元素应用于系列(Pandas)上的每个元素

时间:2013-07-26 18:06:39

标签: python pandas

当我尝试以下操作时:

# 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

1 个答案:

答案 0 :(得分:1)

使用时

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

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

assert(isinstance(f, float))
float_to_string中的