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オブジェクトに適用できないのはなぜですか?

また、なぜ DataFrame と Series は要素ごとの操作に対して異なるメソッド名を持っているのですか (つまりmap 、Seriesapplymapと DataFrame の場合)。

4

1 に答える 1

1

使用時

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

float_to_stringfloat ではなく文字列を受け取ります。追加できることを確認するには

assert(isinstance(f, float))

float_to_string

于 2013-07-26T18:09:38.870 に答える