No se puede eliminar el char de Unicode de los nombres de columna en pandas

He leído un archivo csv en el dataframe de pandas y estoy tratando de eliminar el carácter unicode de los nombres de las columnas, pero sin suerte.

fl.columns Index([ u'time', u'contact', u'address'], dtype='object') headers=[ 'time', 'contact', 'address'] fl=pandas.read_csv('file.csv',header=None,names=headers) 

Todavía no funciona

 fl.columns Index([ u'time', u'contact', u'address'], dtype='object') 

Incluso el cambio de nombre tampoco funciona

 fl.rename(columns=lambda x:x.replace(x,x.value.encode('ascii','ignore')),inplace=True) fl.columns Index([ u'time', u'contact', u'address'], dtype='object') 

¿Alguien puede decirme por qué sucede esto y cómo solucionarlo? Gracias.

Si realmente necesitas eliminar la u (ya que esto es solo un problema de visualización) puedes hacer el siguiente truco :

 from pandas import compat compat.PY3 = True df.columns Index(['time', 'contact', 'address'], dtype='object') 

Tuve un problema con esto hoy y utilicé: df['var'] = df['var'].astype(str)

Me enfrentaba a un problema similar al construir el oleoducto ML. Mi lista de características tenía Unicode junto con los nombres.

caracteristicas

 [u'Customer_id', u'Age',.....] 

Una forma de salirse con la suya es usar la función str (). Cree una nueva lista aplicando una función str a cada uno de los valores.

 features_new= [str(x) for x in features] 

Ahora la lista de features_new no tendrá ningún carácter de Unicode. Déjame saber cómo funciona

Aquí hay una forma de eliminar Unicode de los nombres de columna:

 df.columns = [strip_non_ascii(x) for x in df.columns] 

La siguiente es la función strip_non_ascii para eliminar Unicode:

 def strip_non_ascii(string): ''' Returns the string without non ASCII characters''' stripped = (c for c in string if 0 < ord(c) < 127) return ''.join(stripped)