J'ai actuellement un cadre de données qui ressemble à ceci:
Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
0 Sample Number Group Number Sample Name Group Name
1 1.0 1.0 s_1 g_1
2 2.0 1.0 s_2 g_1
3 3.0 1.0 s_3 g_1
4 4.0 2.0 s_4 g_2
Je cherche un moyen de supprimer la ligne d'en-tête et de faire de la première ligne la nouvelle ligne d'en-tête, afin que le nouveau cadre de données ressemble à ceci:
Sample Number Group Number Sample Name Group Name
0 1.0 1.0 s_1 g_1
1 2.0 1.0 s_2 g_1
2 3.0 1.0 s_3 g_1
3 4.0 2.0 s_4 g_2
J'ai essayé des trucs comme if 'Unnamed' in df.columns:
Puis créé le cadre de données sans l'en-tête df.to_csv(newformat,header=False,index=False)
, mais je ne semble aller nulle part.
new_header = df.iloc[0] #grab the first row for the header
df = df[1:] #take the data less the header row
df.columns = new_header #set the header row as the df header
Le dataframe peut être changé simplement en faisant
df.columns = df.iloc[0]
df = df[1:]
Ensuite
df.to_csv(path, index=False)
Devrait faire l'affaire.
Si vous voulez un one-liner, vous pouvez faire:
df.rename(columns=df.iloc[0]).drop(df.index[0])