Как изменить запись в кадре данных pandas на строковое значение - PullRequest
0 голосов
/ 03 июня 2019

У меня есть датафрейм с записями, которые являются нестроковыми числами. Я хочу изменить значение одного из них на слово (не просто как "7", а, например, семь). Однако я продолжаю получать следующую ошибку:

"ValueError: invalid literal for int() wth base 10: 'Seven' "

Фрейм данных выглядит следующим образом:

     A     B
0   7      10.5
1   8      9.213213

и я хочу, чтобы это выглядело так:

     A     B
0   Seven  10.5
1   Seven  9.213213

Я попытался изменить значение с помощью df.at[index, column title] = 'Seven', но это дало мне эту ошибку

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Одним из решений будет использование пакета num2words:

# Print extended example dataset
print(df)

     A          B
0    7  10.500000
1    8   9.213213
2  650   9.200000

from num2words import num2words

df['A'] = df['A'].apply(lambda x: num2words(x))

                       A          B
0                  seven  10.500000
1                  eight   9.213213
2  six hundred and fifty   9.200000
Name: A, dtype: object

Установка

pip install num2words
0 голосов
/ 03 июня 2019
import pandas as pd
df = pd.DataFrame({'A':[7,8], 'B':[10.5, 9.213213]})
map = {7:'seven', 8:'eight'}

df['A'] = df['A'].map(map)

df
       A          B
0  seven  10.500000
1  eight   9.213213
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...