Ajouter des Zéros à Cordes dans les Pandas Dataframe
J'ai une pandas bloc de données où les 3 premières colonnes sont des chaînes de caractères:
ID text1 text 2
0 2345656 blah blah
1 3456 blah blah
2 541304 blah blah
3 201306 hi blah
4 12313201308 hello blah
Je veux ajouter des zéros au ID:
ID text1 text 2
0 000000002345656 blah blah
1 000000000003456 blah blah
2 000000000541304 blah blah
3 000000000201306 hi blah
4 000012313201308 hello blah
J'ai essayé:
df['ID'] = df.ID.zfill(15)
df['ID'] = '{0:0>15}'.format(df['ID'])
OriginalL'auteur jgaw | 2014-05-23
Vous devez vous connecter pour publier un commentaire.
Essayer:
ou même
lambda
sur la première:apply('{:0>15}'.format)
devrait fonctionner aussi.Nice. Ne le savaient pas.
Il peut être réalisé avec une seule ligne alors que l'initialisation, voir ma réponse ci-dessous.
OriginalL'auteur Rohit
str
attribut contient la plupart des méthodes en chaîne.Voir plus: http://pandas.pydata.org/pandas-docs/stable/text.html
OriginalL'auteur Guangyang Li
Avec Python 3.6+, vous pouvez également utiliser f-chaînes:
Les performances sont comparables ou légèrement pire contre
df['ID'].map('{:0>15}'.format)
. D'autre part, f-chaînes de permis de sortie plus complexe, et vous pouvez les utiliser plus efficacement grâce à une compréhension de liste.Analyse comparative de la Performance
Vous pouvez même utiliser
.map
au lieu de.apply
I
Dans certains exemples, c'est plus rapide. Essayez
df['text1'].map('{:015}'.format)
.Merci, je vois une très légère amélioration de changer
apply
vsmap
, je ne sais pas si c'est l'installation de la dépendance. J'ai mis à jour les horaires et les conseils dans ma réponse questr.format
sanslambda
semble gagner.OriginalL'auteur jpp
Il peut être réalisé avec une seule ligne alors que l'initialisation. Utilisez simplement convertisseurs argument.
de sorte que vous allez réduire le code à longueur de moitié 🙂
PS: read_csv ont cet argument.
OriginalL'auteur Daniil Mashkin
Si vous rencontrez le message d'erreur:
Pandas erreur: ne Peut utiliser .str accesseur avec les valeurs de chaîne, qui utilisent des np.object_ dtype dans les pandas
OriginalL'auteur Deskjokey