我有多个数据框,如下所示:
0 1 2 3 4 5
Groupe 1 2 3 4 5 6
1 3 6 8 6 8 9
2 5 5 2 1 1 0.1
3 7 2 8 1.9 11 2.1
4 1 2 1 1.1 2 1
所以列名是[0,1,2,3,4,5],但是我想把Groupe
行的值作为列名,因为它在我分析的上下文中很有意思数据。
Remarque: Groupe
行的值可能会发生变化,因此不一定是1,2,3。因此解决方案不能像在实际列名中添加+1一样简单。
上面给出的数据帧的所需输出是:
1 2 3 4 5 6
1 3 6 8 6 8 9
2 5 5 2 1 1 0.1
3 7 2 8 1.9 11 2.1
4 1 2 1 1.1 2 1
那么如何更改某些行的值的列名?
答案 0 :(得分:1)
如果行Groupe
是df
的第一行,您可以先按iloc
选择的第一行设置列名,然后按{{3}将其转换为int
删除列名,最后删除带有[1:]
的第一行DataFrame:
df.columns = df.iloc[0,:].astype(int)
df.columns.name= None
print (df[1:])
1 2 3 4 5 6
1 3 6 8 6.0 8 9.0
2 5 5 2 1.0 1 0.1
3 7 2 8 1.9 11 2.1
4 1 2 1 1.1 2 1.0
Groupe
中的astype
和loc
,行df
的另一个解决方案可以在任何地方,而不仅仅是第一个:
df.columns = df.loc['Groupe',:].astype(int)
df.columns.name= None
df = df.drop('Groupe')
print (df)
1 2 3 4 5 6
1 3 6 8 6.0 8 9.0
2 5 5 2 1.0 1 0.1
3 7 2 8 1.9 11 2.1
4 1 2 1 1.1 2 1.0