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?
df['url'] = df['url'].str.lower()
devrait fonctionner sur la série et la remplacer par la version en minuscule.
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 string
s:
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
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 !