按分销商名称的月份对 Pandas DataFrame 进行分组
Grouping a Pandas DataFrame by Months for Distributor Names
我有一个如下所示的数据框:
[1]: https://i.stack.imgur.com/KnHba.png
本质上,有一个分销商名称列、一个销售列和一个 MM/DD/YYYY 日期列。
对于每个分销商,我想要按月计算的销售额总和。
我尝试了什么:
df = df.groupby(df['Distributor Name'],df.Date.dt.month)['Sales'].sum()
这会引发错误。 “不可散列类型:系列”。这在我删除经销商名称时有效,但我不只是想要整体月销售额。我想要分销商的月销售额。
提前致谢!!
乔尔
按多列分组的正确方法是将它们作为第一个参数放入列表中:
result = df.groupby(['Distributor Name', df.date.dt.month])['Sales'].sum()
这将创建一个多索引 pandas 系列,其中 Distributor Name
和 Date
作为索引。如果您想创建一个包含三列(Distributor Name
、Date
、Sales
)的数据框,您可以重置此 pandas 系列的索引。
result = result.reset_index()
我有一个如下所示的数据框: [1]: https://i.stack.imgur.com/KnHba.png
本质上,有一个分销商名称列、一个销售列和一个 MM/DD/YYYY 日期列。
对于每个分销商,我想要按月计算的销售额总和。 我尝试了什么: df = df.groupby(df['Distributor Name'],df.Date.dt.month)['Sales'].sum()
这会引发错误。 “不可散列类型:系列”。这在我删除经销商名称时有效,但我不只是想要整体月销售额。我想要分销商的月销售额。
提前致谢!! 乔尔
按多列分组的正确方法是将它们作为第一个参数放入列表中:
result = df.groupby(['Distributor Name', df.date.dt.month])['Sales'].sum()
这将创建一个多索引 pandas 系列,其中 Distributor Name
和 Date
作为索引。如果您想创建一个包含三列(Distributor Name
、Date
、Sales
)的数据框,您可以重置此 pandas 系列的索引。
result = result.reset_index()