J'ai de gros problèmes pour convertir une colonne en minuscules. Ce n'est pas aussi simple que d'utiliser :
df['my_col'] = df['my_col'].str.lower()
parce que j'itère sur un grand nombre d'images de données et que certaines d'entre elles (mais pas toutes) contiennent à la fois des chaînes et des entiers dans la colonne concernée. La fonction inférieure, si elle est appliquée comme ci-dessus, déclenche alors une exception :
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
Plutôt que de forcer le type à être une chaîne de caractères, j'aimerais évaluer si les valeurs sont des chaînes de caractères et ensuite - si c'est le cas - les convertir en minuscules, et - si ce ne sont pas des chaînes de caractères - les laisser telles quelles. Je pensais que cela fonctionnerait :
df = df.apply(lambda x: x.lower() if(isinstance(x, str)) else x)
Mais ça ne marche pas... probablement parce que je néglige quelque chose d'évident, mais je ne vois pas ce que c'est !
Mes données ressemblent à ceci :
OS Count
0 Microsoft Windows 3
1 Mac OS X 4
2 Linux 234
3 Don't have a preference 0
4 I prefer Windows and Unix 3
5 Unix 2
6 VMS 1
7 DOS or ZX Spectrum 2