使用特定行的值作为列名称

时间:2016-06-05 17:03:12

标签: python pandas columnname

我有多个数据框,如下所示:

        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

那么如何更改某些行的值的列名?

1 个答案:

答案 0 :(得分:1)

如果行Groupedf的第一行,您可以先按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中的astypeloc,行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