Para read_csv / read_html puede usar, por ejemplo, el header=3argumento del constructor que establecerá esa fila como la fila del encabezado: stackoverflow.com/a/51822697/191246
¿No elimina eso las primeras 4 filas en lugar de las primeras 3 filas de la pregunta original?
tagoma
66
No, no lo hace. La posición de inicio del corte siempre se incluye.
bdiamante
¿Alguien sabe cómo hacer esto en un groupby()? Esto funciona pero devuelve columnas duplicadas en el índicedf=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
citynorman
Entonces, si desea eliminar de la fila 3 a la fila 9, por ejemplo, ¿cómo lo haría? df=df.iloc[3:9]?
MK
1
@MK si usa este enfoque, puede usar esto en combinación con pd.concat(). Algo así como df2 = pd.concat([df.iloc[:3],df.iloc[10:]]).
bdiamante
100
Creo que una forma más explícita de hacer esto es usar drop.
La sintaxis es:
df.drop(label)
Y como lo señalaron @tim y @ChaimG, esto se puede hacer en el lugar:
@tim, de acuerdo con esto , las inplaceoperaciones no son más rápidas. Además, lo más simple es una cuestión de opinión: me resulta más fácil de leer cuando el código no tiene inplaceparámetros.
header=3
argumento del constructor que establecerá esa fila como la fila del encabezado: stackoverflow.com/a/51822697/191246Respuestas:
Uso
iloc
:le dará un nuevo df sin las primeras tres filas.
fuente
groupby()
? Esto funciona pero devuelve columnas duplicadas en el índicedf=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
df=df.iloc[3:9]
?pd.concat()
. Algo así comodf2 = pd.concat([df.iloc[:3],df.iloc[10:]])
.Creo que una forma más explícita de hacer esto es usar drop.
La sintaxis es:
Y como lo señalaron @tim y @ChaimG, esto se puede hacer en el lugar:
Una forma de implementar esto podría ser:
Y otro uso "en el lugar":
fuente
drop
incluso se puede calcular en el lugar (sin asignación adicional). ¡Más rápido y más simple!df.drop(label, inplace=True)
inplace
operaciones no son más rápidas. Además, lo más simple es una cuestión de opinión: me resulta más fácil de leer cuando el código no tieneinplace
parámetros.n cae las primeras n filas.
fuente
Puede usar el corte en python, pero tenga en cuenta que no está en su lugar.
fuente
pandas
?Pandas usa numeración basada en cero, por lo que 0 es la primera fila, 1 es la segunda fila y 2 es la tercera fila.
fuente
Una manera simple es usar tail (-n) para eliminar las primeras n filas
df=df.tail(-3)
fuente
inp0 = pd.read_csv ("bank_marketing_updated_v1.csv", skiprows = 2)
o si quieres hacerlo en el marco de datos existente
simplemente haz el siguiente comando
fuente