使用特定行的值作为列名

2024-04-25 20:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个数据帧,看起来像:

        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

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


Tags: 数据解决方案grouperemarque
1条回答
网友
1楼 · 发布于 2024-04-25 20:21:28

如果行Groupedf的第一行,则可以首先按^{}选择的第一行设置列名,然后按^{}将其转换为int,删除列名,最后用[1:]删除数据帧的第一行:

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

另一个具有^{}^{}df中的Groupe行的解决方案可以是任何地方,而不仅仅是第一个:

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

相关问题 更多 >