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
3 Réponses :
col1 col2 0 A berry 1 B water bottle
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.
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