Lorsque je lis dans un CSV, je peux dire pd.read_csv('my.csv', index_col=3)
et il définit la troisième colonne comme index.
Comment puis-je faire de même si j'ai un pandas dataframe en mémoire? Et comment puis-je dire d'utiliser la première ligne également comme index? La première colonne et la ligne sont des chaînes, le reste du la matrice est un entier.
Vous pouvez essayer cela quel que soit le nombre de lignes
df = pd.read_csv ('data.csv', index_col = 0)
Essayez peut-être set_index ()?
df = df.set_index([2])
Faire de la première (ou nième) colonne l'index dans un ordre croissant de verbosité:
df.set_index(list(df)[0])
df.set_index(df.columns[0])
df.set_index(df.columns.tolist()[0])
Faire de la première (ou nième ligne) l'index:
df.set_index(df.iloc[0].values)
Vous pouvez utiliser les deux si vous voulez un index à plusieurs niveaux:
df.set_index([df.iloc[0], df.columns[0]])
Notez que l'utilisation d'une colonne comme index la supprimera automatiquement en tant que colonne. L'utilisation d'une ligne comme index n'est qu'une opération de copie et ne supprimera pas la ligne du DataFrame.