Convertir tout dataframe de minuscules à majuscules avec les Pandas
J'ai un dataframe similaire à celui affiché ci-dessous:
# Create an example dataframe about a fictional army
raw_data = {'regiment': ['Nighthawks', 'Nighthawks', 'Nighthawks', 'Nighthawks'],
'company': ['1st', '1st', '2nd', '2nd'],
'deaths': ['kkk', 52, '25', 616],
'battles': [5, '42', 2, 2],
'size': ['l', 'll', 'l', 'm']}
df = pd.DataFrame(raw_data, columns = ['regiment', 'company', 'deaths', 'battles', 'size'])
Mon but est de transformer chaque chaîne à l'intérieur du dataframe de majuscules, de sorte qu'il ressemble à ceci:
Avis: tous les types de données sont des objets et ne doit pas être modifié; la sortie doit contenir tous les objets. Je veux éviter de transformer chaque colonne un par un... je voudrais le faire en général sur l'ensemble du dataframe peut-être.
Ce que j'ai essayé jusqu'à présent est de faire cela, mais sans succès
df.str.upper()
str
ne fonctionne que pour la série...OriginalL'auteur Federico Gentile | 2016-09-15
Vous devez vous connecter pour publier un commentaire.
astype() sera de voter pour chaque série à la dtype objet (chaîne de caractères), puis d'appeler la str() méthode sur le convertir en série pour obtenir la chaîne littéralement et appeler la fonction upper() sur elle. Notez qu'après cela, le dtype de toutes les colonnes modifications à l'objet.
Plus tard, vous pourrez convertir les "batailles" de la colonne numériques, de nouveau, à l'aide de to_numeric():
OriginalL'auteur Nehal J Wani
cela peut être résolu par la suite applymap opération:
str(s).lower()
cependant.Il devrait fonctionner pour toutes les majuscules si vous remplacez
lower
avecupper
. A très bien fonctionné pour moi!OriginalL'auteur VincentQT
Depuis
str
ne fonctionne que pour la série, vous pouvez l'appliquer à chaque colonne individuellement puis concaténer:Edit: comparaison des performances
Les deux réponses aussi sur un petit dataframe.
Sur un grand dataframe ma réponse est un peu plus rapide.
Non, il ne devrait pas.
comment puis-je faire je le faire?
df.columns = df.columns.str.lower()
OriginalL'auteur IanS
si vous voulez conserv de dtype utilisation est
isinstance(obj,type)
OriginalL'auteur Alex Montoya
essayer cette
OriginalL'auteur Ganesh Bhat