oli
Cuando leo en un CSV, puedo decir pd.read_csv('my.csv', index_col=3)
y establece la tercera columna como índice.
¿Cómo puedo hacer lo mismo si tengo un marco de datos de pandas en la memoria? ¿Y cómo puedo decir que use la primera fila también como índice? La primera columna y fila son cadenas, el resto de la matriz es un número entero.
Y. Yazarel
Puedes probar esto independientemente del número de filas.
df = pd.read_csv('data.csv', index_col=0)
-
Esta es en realidad la solución más fácil.
– ling
23 de marzo de 2019 a las 18:15
-
De acuerdo, esta es la mejor solución cuando se usan archivos CSV
– Ricardo B.
4 de junio de 2019 a las 9:43
-
La pregunta ya menciona esto y pide específicamente en memoria DataFrames.
– villasv
6 de febrero de 2020 a las 16:50
Hacer que la primera (o n-ésima) columna sea el índice en orden creciente de detalle:
df.set_index(list(df)[0])
df.set_index(df.columns[0])
df.set_index(df.columns.tolist()[0])
Haciendo de la primera (o n-ésima) fila el índice:
df.set_index(df.iloc[0].values)
Puede usar ambos si desea un índice de varios niveles:
df.set_index([df.iloc[0], df.columns[0]])
Observe que usar una columna como índice automáticamente la dejará caer como columna. Usar una fila como índice es solo una operación de copia y no eliminará la fila del DataFrame.
¿Tal vez intente set_index ()?
df = df.set_index([2])
-
set_index
espera etiquetas de columna. esto aumentaráKeyError
si su tercera columna tiene un nombre.– villasv
20 de agosto de 2018 a las 18:45
-
En aras de la exhaustividad: si la columna tiene un índice no numérico, debe reemplazar el número con dicho índice no numérico, por ejemplo, df = df.set_index([‘two’]).
-Rushat Rai
15 de noviembre de 2018 a las 10:34
tal vez intente df = pd.read_csv(header = 0)
Lo siento, ¿estás después?
set_index
? esto establecerá una columna como índice para una fila, tendría que anular el índice directamentedf.index = df.iloc[0].values
tenga en cuenta que la longitud de la fila debería coincidir con el número actual de filas en su df– EdChum
13/04/2016 a las 18:51
Gracias EdChum, tu respuesta me ayudó mucho. En mi caso no fue df.index, fue df.columns. Y para las filas necesitaba usar set_index. Gracias.
– Olí
13 abr 2016 a las 22:55
@Oli ¿Podría valer la pena dejar una respuesta, ya que no ha aceptado ninguna de las respuestas actuales?
– tommy.carstensen
14 de enero de 2018 a las 3:29