Split Pandas Série en DataFrame par un délimiteur
Je suis en train de séparer un pandas
series
objet par un délimiteur particulier "; "
dans ce cas. Je veux le transformer en un dataframe
il y aura toujours de la même quantité de "colonnes" ou pour être plus exact, la même quantité de "; "
qui indiquent les colonnes. J'ai pensé que cela ferait l'affaire mais il n'a pas python, comment convertir une pandas série dans une pandas DataFrame? je ne veux pas itérer, je suis sûr que pandas
a fait un raccourci qui est plus efficace.
Personne ne sait de la manière la plus efficace de diviser cette série dans un dataframe par "; "
?
#Example Data
SR_test = pd.Series(["a; b; c; d; e","aa; bb; cc; dd; ee","a1; b2; c3; d4; e5"])
# print(SR_test)
# 0 a; b; c; d; e
# 1 aa; bb; cc; dd; ee
# 2 a1; b2; c3; d4; e5
#Convert each row one at a time (not efficient)
tmp = []
for element in SR_test:
tmp.append([e.strip() for e in element.split("; ")])
DF_split = pd.DataFrame(tmp)
# print(DF_split)
# 0 1 2 3 4
# 0 a b c d e
# 1 aa bb cc dd ee
# 2 a1 b2 c3 d4 e5
EdChum et de Jezrael, qui a répondu en premier? Je veux être juste. Ce sont d'excellentes réponses, exactement ce que j'allais pour.
Je pense que j'ai été la première, mais la différence n'était que d'environ
Je pense que j'ai été la première, mais la différence n'était que d'environ
15 seconds
. Donc, je ne sais pas si c'est important. @EdChum, qu'en pensez-vous?OriginalL'auteur O.rka | 2016-05-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
str.split
:Une autre solution plus rapide, si
Series
ont pasNaN
valeurs:Timings:
Oui, si l'utilisation de cette façon. str.split est un peu plus lent, car il fonctionne avec des valeurs NaN très sympa aussi.
OriginalL'auteur jezrael
Utiliser le vectorisées
str.split
avec paramexpand=True
et passer que les données arg à laDataFrame
ctor:OriginalL'auteur EdChum