Pandas 如何取消熊猫数据帧的堆栈以获取计数的数目
我有下面的数据框。我正在尝试旋转数据帧Pandas 如何取消熊猫数据帧的堆栈以获取计数的数目,pandas,dataframe,pivot,Pandas,Dataframe,Pivot,我有下面的数据框。我正在尝试旋转数据帧 Department Manager_Rank Electronics A1 Electronics A2 Electronics A3 Electronics A4 Electronics B1 Electronics B2 Electronics B3 Electronics B4 Desired:
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
我们可以对秩的第一个字母进行切片,然后使用transform创建列键,并使用groupby size+unstack进行操作
我们可以对秩的第一个字母进行切片,然后使用transform创建列键,并使用groupby size+unstack进行操作 将transform与join和take一起使用,以构造用于pd.crosstab的列和值的系列 将transform与join和take一起使用,以构造用于pd.crosstab的列和值的系列
take的有趣用法:-当有多个部门时,这不起作用。strngely@gannu:您能分享一个导致它不起作用的示例吗?take的有趣用法:-当有多个部门时,它不起作用。strngely@gannu:你能分享一个导致它不起作用的样本吗?
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 4
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