web-dev-qa-db-ja.com

Python Pandasヘッダーを一番上の行に置き換える

現在、次のようなデータフレームがあります。

_           Unnamed: 1    Unnamed: 2   Unnamed: 3  Unnamed: 4
0   Sample Number  Group Number  Sample Name  Group Name
1             1.0           1.0          s_1         g_1
2             2.0           1.0          s_2         g_1
3             3.0           1.0          s_3         g_1
4             4.0           2.0          s_4         g_2
_

ヘッダー行を削除し、最初の行を新しいヘッダー行にする方法を探しているので、新しいデータフレームは次のようになります。

_    Sample Number  Group Number  Sample Name  Group Name
0             1.0           1.0          s_1         g_1
1             2.0           1.0          s_2         g_1
2             3.0           1.0          s_3         g_1
3             4.0           2.0          s_4         g_2
_

_if 'Unnamed' in df.columns:_の行に沿って何かを試した後、ヘッダーdf.to_csv(newformat,header=False,index=False)なしでデータフレームを作成しましたが、どこにも行かないようです。

28
Jeremy G
new_header = df.iloc[0] #grab the first row for the header
df = df[1:] #take the data less the header row
df.columns = new_header #set the header row as the df header
59
rgalbo

データフレームは、以下を行うだけで変更できます

df.columns = df.iloc[0]
df = df[1:]

それから

df.to_csv(path, index=False) 

トリックを行う必要があります。

18
JoeCondron

ワンライナーが必要な場合は、次のことができます。

df.rename(columns=df.iloc[0]).drop(df.index[0])
14
ostrokach