web-dev-qa-db-fra.com

Conversion d'une chaîne en minuscule [Pandas]

J'ai une donnée qui contient des noms de domaine: 

 url          var1
www.CNN.com   xsd
www.Nbc.com   wer
www.BBc.com   xyz
www.fOX.com   zyx
....

Les données sont du type série. J'utilise les éléments suivants pour convertir la variable URL en minuscule:

df.apply(lambda x: x.astype(str).str.lower())

Cependant, ils restent les mêmes. 

Qu'est-ce que je fais mal? 

8
Feyzi Bagirov
df['url'] = df['url'].str.lower()

devrait fonctionner sur la série et la remplacer par la version en minuscule.

14
David

Je pense que vous devez affecter la sortie, mieux vaut omettre apply si ne fonctionne qu'avec la colonne url:

df = pd.DataFrame({'url': ['www.CNN.com', 'www.Nbc.com', 'www.BBc.com', 'www.fOX.com'], 
                   'var1': ['XSD', 'wer', 'xyz', 'zyx']})

print (df)
           url var1
0  www.CNN.com  XSD
1  www.Nbc.com  wer
2  www.BBc.com  xyz
3  www.fOX.com  zyx

#if types of column is str, astype is not necessary
df.url = df.url.astype(str).str.lower()
print (df)
           url var1
0  www.cnn.com  XSD
1  www.nbc.com  wer
2  www.bbc.com  xyz
3  www.fox.com  zyx

Mais si nécessaire, convertissez toutes les colonnes de df en lowercase strings:

df = df.astype(str).apply(lambda x: x.str.lower())
print (df)
           url var1
0  www.cnn.com  xsd
1  www.nbc.com  wer
2  www.bbc.com  xyz
3  www.fox.com  zyx
2
jezrael

Pour convertir une seule colonne, nous pouvons utiliser, 

df.column_name.str.lower()

ou 

df['column_name'].str.lower()

J'espère que cela t'aides !

0
Vivek Ananthan