我有下面的数据框架。我正在尝试旋转数据框架。
Department Manager_Rank
Electronics A1
Electronics A2
Electronics A3
Electronics A4
Electronics B1
Electronics B2
Electronics B3
Electronics B4
Desired:
Department A1-A4 B1-B4
Electronics 4 4发布于 2020-08-29 03:57:13
将transform与join和take结合使用,以构建用于pd.crosstab的columns和values的系列用法
cols = (df.groupby(df.Manager_Rank.str[0]).Manager_Rank
.transform(lambda x: '-'.join(x.take([0,-1]))))
df_final = pd.crosstab(index=df.Department, columns=cols)
Out[506]:
Manager_Rank A1-A4 B1-B4
Department
Electronics 4 4发布于 2020-08-29 03:40:30
我们可以切分Rank的第一个字母,然后使用transform创建列关键字,并使用groupby size + unstack完成
g = df.groupby(df.Manager_Rank.str[0])['Manager_Rank']
s = df.groupby([df.Department, g.transform('first') + '_' + g.transform('last')]).size().unstack()
Out[196]:
Manager_Rank A1_A4 B1_B4
Department
Electronics 4 4https://stackoverflow.com/questions/63639825
复制相似问题