Comment combiner plusieurs rangées de chaînes en un seul à l'aide de pandas?
J'ai un DataFrame avec plusieurs lignes. Est-il de toute façon dans laquelle ils peuvent être combinés pour former une chaîne de caractères?
Par exemple:
words
0 I, will, hereby
1 am, gonna
2 going, far
3 to
4 do
5 this
Résultat attendu:
I, will, hereby, am, gonna, going, far, to, do, this
Quel est le type des éléments? Je devine
les index sont comme 0,1,2,3,4,5,6,7,....
0
, 1
, etc est index droit?les index sont comme 0,1,2,3,4,5,6,7,....
OriginalL'auteur eclairs | 2015-10-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
str.cat
à rejoindre les cordes de chaque ligne. Pour une Série ou une colonnes
, écrire:Le
.str
accesseur ne fonctionne que sur une Série ou une seule colonne d'un DataFrame (pas la totalité d'un DataFrame). Si vous souhaitez appliquer cette méthode à plusieurs colonnes d'un DataFrame, vous aurez besoin de l'utiliser sur chaque colonne individuellement à son tour.merci, pourriez-vous également m'aider à sortir de la syntaxe de la ci-dessus? Si je veux concaténer les lignes de la colonne "mots" de dataframe df, comment dois-je l'écrire? Merci pour votre aide!
Assurez-vous d'appliquer la méthode de la 'mots' colonne, vous pouvez écrire
df['words'].str.cat(sep=', ')
(oùdf
est le nom de votre DataFrame).Je suis surpris
str.cat
est plus lent àjoin()
méthode. Vérifier la solution et les horaires ci-dessous.OriginalL'auteur Alex Riley
La façon traditionnelle python
join
? Et, c'est plus rapide.Timings en Décembre, en 2016, sur les pandas 0.18.1
str.cat
de manière transparente gérer les valeurs manquantes commeNaN
etNone
(vous pouvez même fournir lena_rep
argument de choisir la manière de représenter ces valeurs manquantes). Pythonjoin
échoue ici. Vous pouvez contourner ce problème en filtrant/remplissage des valeurs manquantes et rejoindre, mais cela ralentit le droit recule. Le remplissage des valeurs manquantes comme cela échoue également si la colonne contient catégorique valeurs;str.cat
fonctionne, tout simplement.OriginalL'auteur Zero
Si vous avez un
DataFrame
plutôt qu'unSeries
et vous voulez concaténer des valeurs (je pense que les valeurs de texte uniquement) à partir des lignes différentes en fonction d'une autre colonne comme un groupe par la touche, vous pouvez utiliser le.agg
méthode de la classeDataFrameGroupBy
. Voici une lien vers le manuel de l'API.Exemple de code testé avec les Pandas v0.18.1:
OriginalL'auteur Zhong Dai
Pour quiconque veut savoir comment les combiner plusieurs rangées de chaînes dans
dataframe
,Je vais vous donner une méthode qui permet de concaténer des chaînes de caractères dans une "fenêtre" de la gamme de proximité de lignes comme suit:
Note:
Cela ne peut pas être atteint par
groupby
, parce que nous n'entendons pas le même id de lignes, juste à côté des lignes.OriginalL'auteur Kevin Chou