将pandas数据框分组(从多到多,但不是所有列)从长到宽转换

问题描述 投票:1回答:1

问题:

我有一个数据集,其中包含不同公司的年度数据。数据以长格式存储,每年一行,因此公司ID重复。数据看起来像这样(但是在原始数据框中,我有很多列)。

enter image description here

我需要将长型格式转换为宽型格式,因此每家公司将显示为一行(无重复)

这是我想要的结果:

enter image description here

如您所见,我需要:

  • 不再需要某些列(例如“ year”)

  • 某些列(例如“ sales”,“ sales_change_in_2_years”,“ sales_change_over_year”)应从宽格式转换为长格式,并保留其名称(并向其添加数字)

  • ]
  • 一些列(如“ ind1”和“ ind2”)应保持原样(从宽到长不转换)]

  • 到目前为止,我已经能够试用仅在一个专栏中使用的解决方案,因此对我来说确实不是一个解决方案。

这是我的代码:

test.groupby("comp_id")['sales_change_1'].apply(list).apply(pd.Series).rename(columns=lambda x: 'sales_{}'.format(x+1))

我的问题有更好的解决方法吗?

问题:我有一个包含不同公司的年度数据的数据集。数据以长格式存储,每年一行,因此公司ID重复。数据看起来像这样(但是...

python pandas dataframe pandas-groupby transformation
1个回答
0
投票

删除年份后:

© www.soinside.com 2019 - 2024. All rights reserved.