невозможно преобразовать число в слова из серии Pandas с помощью библиотеки Python num2words - PullRequest
0 голосов
/ 01 ноября 2019

Я не могу создать новый столбец в pandas dataframe, который преобразует число в слова, используя библиотеку python num2words, работает с использованием простых параметров int или float, но не работает с сериями

Это то, что я пробовал:

data['words'] = data['Value'].apply(lambda row : num2words(row['Value']))

TypeError Traceback (последний последний вызов) в ----> 1 data ['words'] = data ['Value']. ​​Apply (лямбда-строка: num2words (строка)['Value']))

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pandas \ core \ series.py в apply (self, func, convert_dtype, args, ** kwds) 4040 else: 4041 values ​​= self.astype (object) .values ​​-> 4042 mapped = lib.map_infer (values, f, convert = convert_dtype) 4043 4044, если len (сопоставленный) и isinstance (сопоставленный [0], Series):

pandas_libs \ lib.pyx в pandas._libs.lib.map_infer ()

в (строка) ----> 1 данные ['words'] = данные ['Value'].apply (лямбда-строка: num2words (row ['Value']))

TypeError: объект 'float' не может быть подписан

1 Ответ

0 голосов
/ 01 ноября 2019

Один из способов сделать это - определить простую функцию, которая принимает row в качестве ввода и возвращает num2words(row['Value']).

Затем вы можете применить ее к DataFrame с помощью axis=1.

def f(row):
    return num2words(row['Value'])

data['words'] = data.apply(f, axis=1)

Или вы можете обратиться непосредственно к колонке.

data['words'] = data['Value'].apply(num2words)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...