熊猫中的数据框转换

时间:2020-06-24 16:02:47

标签: python-3.x pandas pivot-table pandas-groupby

我要转换以下数据框:

ID       Level        Band      Date
1        A            A1        2020-06-01
1        B            B1        2020-06-03
1        C            C1        2020-06-04

ID       First_Level      Second_Level    Third_Level  First_Band   Second_Band  Third_Band      First_Data   Second_Date     Third_Date
1        A                B                C           A1            B1          C1             2020-06-01   2020-06-03     2020-06-04

,这是一个示例数据。有多个ID,级别,乐队和关联的日期。如何解决该问题?

1 个答案:

答案 0 :(得分:1)

这是动态重命名的另一种方法:

import inflect
e = inflect.engine()

s = df.set_index('ID').stack()
idx_1 = (s.index.get_level_values(1) + 
         s.groupby(s.index).cumcount().add(1).map(e.ordinal).radd('_'))
s.index = pd.MultiIndex.from_arrays((s.index.get_level_values(0),idx_1))
print(s.unstack())

enter image description here