如何根据使用熊猫的另一列(日期)找到特定列的计数?

数据挖掘 Python 熊猫 数据清理
2022-03-03 23:00:51

我有一个包含 3 列的数据框,例如 SoldDate、Model 和 TotalSoldCount。如何创建一个新列“CountSoldbyMonth”,该列将给出每月销售的许多模型中的每一个的计数?

Date        Model  TotalSoldCount
Jan 19        A          4
Jan 19        A          4
Jan 19        A          4
Jan 19        B          6
Jan 19        C          2
Jan 19        C          2
Feb 19        A          4
Feb 19        B          6
Feb 19        B          6
Feb 19        B          6
Mar 19        B          6
Mar 19        B          6

新的 df 应该是这样的。

Date      Model     TotalSoldCount     CountSoldbyMonth
Jan 19     A               4                    3
Jan 19     A               4                    3
Jan 19     A               4                    3
Jan 19     B               6                    1
Jan 19     C               2                    2
Jan 19     C               2                    2
Feb 19     A               4                    1
Feb 19     B               6                    3
Feb 19     B               6                    3
Feb 19     B               6                    3
Mar 19     B               6                    2
Mar 19     B               6                    2

我尝试做 df['CountSoldbyMonth'] = df.groupby(['date','model']).totalsoldcount.transform('sum') 但它产生了不同的值。

2个回答

试试这个:

df['CountSoldbyMonth'] = df.groupby(['Date','Model']).transform('count')

您不需要选择第三列,因为您只需要 groupby 项目的计数。

data['CountSoldbyMonth']= data.groupby(['Date','Model']).TotalSoldCount.transform('count')工作正常。