получение этого на dataframe 'int' объект не имеет атрибута 'lower' - PullRequest
1 голос
/ 20 марта 2019
df23 = pd.DataFrame({'name':['MY NAME1', 'MY NAME2', 'MY NAME3','MY NAME4'],
                    'description': [['d1 d2 d3'], ['d4 d5 d6'], ['d7 d8 d9'],['a9 d0 t5']],
                   'specialties': ['green,red,blue', 'green,purple,pink', 'yellow,white,black,red,green', 'bub.tub,rub'],
                    })
df_work['name'] = [x for x in df_work['name'].map(lambda x: x.lower())]

Я хочу преобразовать все записи в имени col в нижнюю.Но я получаю эту ошибку.

Ответы [ 3 ]

3 голосов
/ 20 марта 2019

Кажется, что некоторое значение является целым числом, поэтому необходимо преобразовать в string:

df_work['name'] = [x for x in df_work['name'].map(lambda x: str(x).lower())]

Другое решение с Series.astype и Series.str.lower:

df_work['name'] = df_work['name'].astype(str).str.lower()
1 голос
/ 20 марта 2019

Если df_work является существующим фреймом данных, вы можете использовать:

df_work['name'] = df23['name'].apply(lambda x: x.lower())

еще использовать:

df_work = pd.DataFrame(df23['name'].apply(lambda x: x.lower()), columns = ['name'])
1 голос
/ 20 марта 2019

Попробуйте это:

df23['name'] = df23['name'].astype('str').map(lambda x: x.lower())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...