【发布时间】:2019-04-14 14:10:30
【问题描述】:
我一直在做一个需要拆分 10-12 列并堆叠它们的项目。唯一的问题是我必须反复这样做。我的意思是,一旦我拆分了 1 列,我将其堆叠起来,然后对其他列重复相同的步骤。 虽然我运行代码没有问题,但我正在寻找一种更有效的方法。
我目前正在重复相同的过程 10-12 次,运行代码需要一些时间,因为有 50 多个列名。
df1 = (df1.set_index(['Announced Date', 'Completed Date', 'Target Company',
'Target Dominant Sector', 'Target Dominant Country', 'Target State',
'Target Financial Advisor', 'Target Legal Advisor', 'Target Broker',
'Target Accountant', 'Target PR', 'Target Consultant',
'Bidder Company', 'Bidder Dominant Country', 'Bidder State',
'Bidder Financial Advisor', 'Bidder Legal Advisor', 'Bidder Broker',
'Bidder Accountant', 'Bidder PR', 'Bidder Consultant',
'Seller Company', 'Seller Dominant Country', 'Seller State',
'Seller Financial Advisor', 'Seller Legal Advisor', 'Seller Broker',
'Seller Accountant', 'Seller PR', 'Seller Consultant',
'Reported Revenue Multiple Y1', 'Reported EBIT Multiple Y1', 'Reported EBITDA Multiple Y1',
'Reported PE Multiple Y1', 'Reported Book Value Multiple Y1', 'Deal Description',
'Deal Type', 'Deal Nature', "Deal Value USD(m)",
'Deal ID', 'Deal within regular criteria','Target companies',
'Target FAs', 'Taget LAs', "Taget Brokers",
"Target Accountants", 'Target PRs','Target Consultants',
'Bidder Companies', 'Bidder FAs', 'Bidder LAs',
"Bidder Brokers", "Bidder Accountants","Bidder PRs",
"Bidder Consultants",'Seller Companies']).stack()
.reset_index(level=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55], name='Seller FAs')
.reset_index(drop=True))
我知道不用输入所有列名,我可以使用
df1.columns
而不是单独使用 0-55 个数字,我可以使用
np.arange(56)
但我无法将它们合并到代码中。有人可以帮我提高效率吗?
【问题讨论】: