Tengo una columna en un DataFrame de pandas que me gustaría dividir en un solo espacio. La división es bastante simple con DataFrame.str.split(' ')
, pero no puedo hacer una nueva columna desde la última entrada. Cuando yo .str.split()
la columna obtengo una lista de matrices y no sé cómo manipular esto para obtener una nueva columna para mi DataFrame.Obtener la última "columna" después de la operación .str.split() en la columna en pandas DataFrame
Aquí hay un ejemplo. Cada entrada en la columna contiene 'precio de datos de símbolo' y me gustaría dividir el precio (y eventualmente eliminar la "p" ... o "c" en la mitad de los casos).
import pandas as pd
temp = pd.DataFrame({'ticker' : ['spx 5/25/2001 p500', 'spx 5/25/2001 p600', 'spx 5/25/2001 p700']})
temp2 = temp.ticker.str.split(' ')
que produce
0 ['spx', '5/25/2001', 'p500']
1 ['spx', '5/25/2001', 'p600']
2 ['spx', '5/25/2001', 'p700']
Pero temp2[0]
simplemente da gama de una entrada de la lista y temp2[:][-1]
falla. ¿Cómo puedo convertir la última entrada en cada arreglo a una nueva columna? ¡Gracias!
Esto me ayudó a agregar un archivo de registro en pandas que era demasiado aterrador y complicado incluso para tocar antes (una sola columna de datos con mucha información por fila). – trench
Todos estos enfoques tienen un rendimiento desastroso en comparación con la respuesta de Wes McKinney. –
@JohnZwinck: wow, un voto a favor relacionado con el rendimiento en una respuesta de hace cinco años sobre la funcionalidad que solo se había introducido aproximadamente [dos meses antes] (https://github.com/pandas-dev/pandas/issues/1656)? Eso es ... riguroso, ¡te daré eso! – DSM