“数据透视”选项卡等列标题

2024-09-21 10:52:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图找出访问我的商店的会员等级的组合。你知道吗

import pandas as pd

df=pd.DataFrame({'MbrID':['M1','M2','M3','M4','M5','M6','M7']
                    ,'Store':['PAR','TPM','AMK','TPM','PAR','PAR','AMK']
                    ,'Grade':['A','A','B','A','C','A','C']})
df=df[['MbrID','Store','Grade']]
print(df)

df.groupby('Store').agg({'Grade':pd.Series.nunique})

下面是数据帧,也是groupby函数的结果。你知道吗

enter image description here

如何生成类似Excel透视表的结果,以便将等级(A、B、C)的类别作为列标题?这是假设我有相当广泛的成员等级。你知道吗


Tags: storeimportpandasdfas商店pdgrade
1条回答
网友
1楼 · 发布于 2024-09-21 10:52:44

我认为可以使用^{}^{}并通过^{}重塑:

df1 = df.groupby(['Store','Grade'])['Grade'].size().unstack(fill_value=0)
print (df1)
Grade  A  B  C
Store         
AMK    0  1  1
PAR    2  0  1
TPM    2  0  0

^{}溶液:

df2 = pd.crosstab(df.Store, df.Grade)
print (df2)
Grade  A  B  C
Store         
AMK    0  1  1
PAR    2  0  1
TPM    2  0  0

^{}

df3 = df.pivot_table(index='Store', 
                     columns='Grade', 
                     values='MbrID', 
                     aggfunc=len,
                     fill_value=0)
print (df3)
Grade  A  B  C
Store         
AMK    0  1  1
PAR    2  0  1
TPM    2  0  0

相关问题 更多 >

    热门问题