3
votes

Supprimer le premier mot si une phrase des valeurs de la colonne du cadre de données pandas

J'ai un bloc de données comme celui-ci:

df1:
col1       col2
 A         berry
 B         water bottle

Je veux supprimer le premier mot des valeurs col2, le bloc de données final ressemblera à ceci:

df:
col1      col2
 A        blue berry
 B        nice water bottle

Comment faire cela de la manière la plus efficace en utilisant des pandas


0 commentaires

3 Réponses :


3
votes
  col1          col2
0    A         berry
1    B  water bottle

0 commentaires

1
votes

dans votre cas,

df1.col2 = df1.col2.str.split(" ",1).str[1]

pourrait faire l'affaire. Le .str vous donne une fonctionnalité de chaîne vectorisée sur les colonnes et et split prend un argument supplémentaire qui indique à quelle fréquence il sera divisé au maximum.


0 commentaires

2
votes

Utilisez split code> par premier espace avec n = 1 , puis sélectionnez les secondes listes en indexant:

df['col2'] = [x.split(maxsplit=1)[1] for x in df['col2']]

Détail : p>

print (df['col2'].str.split(n=1))
0           [blue, berry]
1    [nice, water bottle]
Name: col2, dtype: object

Si les performances sont importantes et aucune valeur manquante, convertissez la solution en compréhension de liste:

df['col2'] = df['col2'].str.split(n=1).str[1]
print (df)
  col1          col2
0    A         berry
1    B  water bottle


0 commentaires