Pandas DataFrame を転置し、列ヘッダーをリストに変更する 質問する

Pandas DataFrame を転置し、列ヘッダーをリストに変更する 質問する

私は次のPandasサブデータフレームを持っています

         col1  name1  name2
522      a     10     0.2
1021     b     72    -0.1

col1重複はありません。データフレームを転置し、列ヘッダーをcol1値に変更します。理想的には出力は次のようになります。

Variable  a     b
name1     10    72
name2     0.2  -0.1

自由度を転置し、最初の列を変数としてラベル付けするのは簡単です。

df.transpose().reset_index().rename(columns={'index':'Variable'})

結果の DF には、元の DF のインデックスが列ヘッダーとして含まれます (インデックスはソートされておらず、データ内では 1 から始まりません)。残りの列名を変更するにはどうすればよいですか?

ベストアンサー1

必要set_index+T:

df = df.set_index('col1').T
print (df)
col1      a     b
name1  10.0  72.0
name2   0.2  -0.1

df = df.set_index('col1').T.rename_axis('Variable').rename_axis(None, 1)
print (df)
             a     b
Variable            
name1     10.0  72.0
name2      0.2  -0.1

インデックスから列が必要な場合:

df = df.set_index('col1').T.rename_axis('Variable').rename_axis(None, 1).reset_index()
print (df)
  Variable     a     b
0    name1  10.0  72.0
1    name2   0.2  -0.1

おすすめ記事