转置 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 并将第一列标记为变量

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

结果 DF 将原始 DF 的索引作为列标题(并且它们没有排序并且不在我的数据中从 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

转载自https://stackoverflow.com/questions/47139203/transpose-pandas-dataframe-and-change-the-column-headers-to-a-list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值