Tengo un marco de datos de Python con alrededor de 1500 filas y 15 columnas. Con una columna específica, me gustaría eliminar los primeros 3 caracteres de cada fila. Como ejemplo simple, aquí hay un marco de datos:
import pandas as pd d = { 'Report Number':['8761234567', '8679876543','8994434555'], 'Name' :['George', 'Bill', 'Sally'] } d = pd.DataFrame(d) Me gustaría eliminar los primeros tres caracteres de cada campo en la columna Report Number del marco de datos d .
Vale la pena señalar que los métodos str "vectorizados" de Pandas no son más que bucles a nivel de Python.
Suponiendo datos limpios, a menudo encontrará una lista de comprensión más eficiente:
# Python 3.6.0, Pandas 0.19.2 d = pd.concat([d]*10000, ignore_index=True) %timeit d['Report Number'].str[3:] # 12.1 ms per loop %timeit [i[3:] for i in d['Report Number']] # 5.78 ms per loopTenga en cuenta que estos no son equivalentes, ya que la comprensión de la lista no trata con datos nulos y otros casos extremos. Para estas situaciones, puede preferir la solución Pandas.