pandas输出列名_在pandas中使用列名作为新属性

或者您可以使用lreshapedf=pd.lreshape(df2, {'Date': ["Date","Date"], 'Beta': ['Agric', 'Food']})

df['Sector']=sorted(df2.columns.tolist()[1:3]*2)

Out[654]:

Date Beta Sector

0 01/01/1990 1.3 Agric

1 01/02/1990 1.2 Agric

2 01/01/1990 0.9 Food

3 01/02/1990 0.9 Food

如果你有48列

^{pr2}$

同样对于柱形部分,它更安全import itertools

list(itertools.chain.from_iterable(itertools.repeat(x, 2) for x in df2.columns.tolist()[1:3]))

编辑原因lreshap未记录(根据@Ted Petrou,如果可能,最好使用可用的数据帧方法,如果没有可用的,则使用文档化函数。pandas一直在寻求改进它的API,而调用lreshape等没有文档记录的、旧的和实验性的函数是没有道理的。此外,这个问题是熔体或堆栈的一个非常直接的用例。这是一个坏的先例,为那些新来的熊猫来堆栈溢出,并找到投票赞成的答案与lreshape。)

另外,如果您想了解更多信息,可以在github上查看

下面是使用pd.wide_to_long的方法dict1 = {'Agric':'A_Agric','Food':'A_Food'}

df2 = df.rename(columns=dict1)

pd.wide_to_long(df2.reset_index(),['A'],i='Date',j='Sector',sep='_',suffix='.').reset_index().drop('index',axis=1).rename(columns={'A':'Beta '})

Out[2149]:

Date Sector Beta

0 01/01/1990 Agric 1.3

1 01/02/1990 Agric 1.2

2 01/01/1990 Food 0.9

3 01/02/1990 Food 0.9

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值