我有像这样的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列标题?
谢谢。
答案 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