Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getting this on dataframe 'int' object has no attribute 'lower'

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())]

I want to convert all entries in name col to lower. But i am getting this error.

like image 998
irum zahra Avatar asked Jun 01 '26 17:06

irum zahra


2 Answers

It seems some value is integer, so is necessary converting to string:

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

Another solution with Series.astype and Series.str.lower:

df_work['name'] = df_work['name'].astype(str).str.lower()
like image 114
jezrael Avatar answered Jun 03 '26 22:06

jezrael


If df_work is an existing dataframe then you may use:

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

else use:

df_work = pd.DataFrame(df23['name'].apply(lambda x: x.lower()), columns = ['name'])
like image 31
Loochie Avatar answered Jun 03 '26 23:06

Loochie



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!