Pandas 在同一个表(同一数据帧)中,如何使用新名称和其他行值的总和对不同的行进行分组

Pandas 在同一个表(同一数据帧)中,如何使用新名称和其他行值的总和对不同的行进行分组,pandas,pandas-groupby,sklearn-pandas,expandablelistadapter,pandas-datareader,Pandas,Pandas Groupby,Sklearn Pandas,Expandablelistadapter,Pandas Datareader,现在我希望上面的格式是下面的格式。此后,基于此,我想构建图表 below dataframe is the output of below code i want to group rows further train=pd.read_excel("monthly_report.xlsx", sheet_name="xy12",sep=r'\s*,\s*') train['Date/Time Opened']=train['Date/Time Opened'].dt.month_name() t

现在我希望上面的格式是下面的格式。此后,基于此,我想构建图表

below dataframe is the output of below code i want to group rows further
train=pd.read_excel("monthly_report.xlsx", sheet_name="xy12",sep=r'\s*,\s*')
train['Date/Time Opened']=train['Date/Time Opened'].dt.month_name()
train=train.groupby(['col1', 'Date/Time Opened'])['Date/Time Opened'].count()

col1         Date/Time Opened    number
abc          April               40
             August              30
             December            25
             February            30
             January             45

xyz          April                1
             August               1
             November             3
             October              2
             September            3
pqr          March                2
             May                  4
             November             5
             October              2
有人能告诉我如何将行与新行中的diffrenet值以及其他行值的总和连接起来吗?您可以将其用于设置相同的类别:

abcxyz(new name)  April               41
                  August              31
                  December            25
                  February            30
                  January             45
                  September            3
                  November             3
                  October              2

pqr(new name)           
                 March                2
                 May                  4
                 November             5
                 October              2
或与字典一起使用:

train['col1'] = train['col1'].mask(train['col1'].isin(['abc','xyz']), 'abcxyz')
。。。然后使用您的解决方案:

train['col1'] = train['col1'].replace({'abc':'abcxyz','xyz':'abcxyz'})
train['Date/Time Opened']=train['Date/Time Opened'].dt.month_name()
train=train.groupby(['col1', 'Date/Time Opened'])['Date/Time Opened'].count()