Necesito eliminar una columna con el nombre de la etiqueta al momento de cargar un csv usando pandas . Estoy leyendo csv de la siguiente manera y quiero agregar parámetros dentro para hacerlo. Gracias.
pd.read_csv("sample.csv")
Sé que hacer esto después de leer csv:
df.drop('name', axis=1)Si conoce los nombres de las columnas antes, puede hacerlo configurando el parámetro usecols
Cuando sabes qué columnas usar
Suponga que tiene un archivo csv con columnas ['id','name','last_name'] y solo quiere ['name','last_name'] . Puedes hacerlo de la siguiente manera:
import pandas as pd df = pd.read_csv("sample.csv", usecols = ['name','last_name'])cuando quieres las primeras N columnas
Si no conoce los nombres de las columnas pero desea las primeras N columnas del marco de datos. Puedes hacerlo por
import pandas as pd df = pd.read_csv("sample.csv", usecols = [i for i in range(n)])Editar
Cuando sepa el nombre de la columna que se va a soltar
# Read column names from file cols = list(pd.read_csv("sample_data.csv", nrows =1)) print(cols) # Use list comprehension to remove the unwanted column in **usecol** df= pd.read_csv("sample_data.csv", usecols =[i for i in cols if i != 'name'])Obtenga los encabezados de columna de su CSV usando pd.read_csv con nrows=1 , luego realice una lectura posterior con usecols para extraer todo menos las columnas que desea omitir.
headers = [*pd.read_csv('sample.csv', nrows=1)] df = pd.read_csv('sample.csv', usecols=[c for c in headers if c != 'name']))Alternativamente, puede hacer lo mismo (leer solo los encabezados) de manera muy eficiente usando el módulo CSV,
import csv with open("sample.csv", 'r') as f: header = next(csv.reader(f)) # For python 2, use # header = csv.reader(f).next() df = pd.read_csv('sample.csv', usecols=list(set(header) - {'name'}))Usar df= df.drop(['ID','prediction'],axis=1) hizo el trabajo por mí. Dejé caer las columnas 'ID' y 'predicción'. Asegúrate de ponerlos entre corchetes como ['column1','column2'] . No hay necesidad de otras soluciones complicadas.