从pandas中的数据中获取标头

时间:2017-02-25 10:04:48

标签: python pandas

我有像这样的python pandas数据框,

           0     1     2     3     4     5     6     7     8
0        121     1     2     3     4     5     6     7     8
1        112     1     2     3     4     5     6     7     8
2        102     1     2     3     4     5     6     7     8
3        121     1     2     3     4     5     6     7     8
4  client_id  var1  var2  var3  var4  var5  var6  var7  var8
5        125     8     7     6     5     4     3     2     1

我的列标题位于第5行,例如client_id等...,如何将此行设为我的df列标题?

谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用:

df.columns = df.loc[4]
df = df.drop(4).reset_index(drop=True)
df.columns.name = None
print (df)
  client_id var1 var2 var3 var4 var5 var6 var7 var8
0       121    1    2    3    4    5    6    7    8
1       112    1    2    3    4    5    6    7    8
2       102    1    2    3    4    5    6    7    8
3       121    1    2    3    4    5    6    7    8
4       125    8    7    6    5    4    3    2    1

更有活力:

idx = df.index[df.iloc[:,0] == 'client_id']
print (idx)
Int64Index([4], dtype='int64')

df.columns = df.loc[idx.item()]
df = df.drop(idx).reset_index(drop=True)
df.columns.name = None
print (df)
  client_id var1 var2 var3 var4 var5 var6 var7 var8
0       121    1    2    3    4    5    6    7    8
1       112    1    2    3    4    5    6    7    8
2       102    1    2    3    4    5    6    7    8
3       121    1    2    3    4    5    6    7    8
4       125    8    7    6    5    4    3    2    1