使用特定行的值作为列名
Use values of specific rows as columns names
我有多个数据框,如下所示:
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
行的值作为列名,因为它在上下文中很有趣我分析数据。
备注: 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
那么如何更改某行值的列名称?
如果行 Groupe
是 df
的第一行,您可以先根据 iloc
, then convert it to int
by astype
选择的第一行设置列名,删除列名,最后删除 DataFrame 的第一行[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
loc
and drop
的另一种解决方案,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
我有多个数据框,如下所示:
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
行的值作为列名,因为它在上下文中很有趣我分析数据。
备注: 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
那么如何更改某行值的列名称?
如果行 Groupe
是 df
的第一行,您可以先根据 iloc
, then convert it to int
by astype
选择的第一行设置列名,删除列名,最后删除 DataFrame 的第一行[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
loc
and drop
的另一种解决方案,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