在熊猫中的groupby与行索引混淆

时间:2017-02-21 01:48:11

标签: python pandas

我有一个包含三列的pandas df,purchase_day,customer_name,products_purchased。

我想返回每个客户访问商店的天数。所以我用了

gpd = df.groupby(by=['customer_name', 'purchase_day']).count()

返回一个表格如下: enter image description here

不幸的是,对于这个返回的表格,由于格式异常(其中customer_name和purchase_days不在第一行但在第二行中),我无法在其上运行groupby。

任何提示,以便我可以计算每个客户访问商店的purchase_days数量?

1 个答案:

答案 0 :(得分:1)

您需要做的是重置索引。

由于您将.groupby数据框应用于多列,

返回的数据帧将有MultiIndex

gpd = df.groupby(by=['customer_name', 'purchase_day']).count().reset_index()

此外,您仍然可以将.groupby应用于多索引数据框。

方法pandas.DataFrame.groupby的{​​{3}},

有一个段level可用于将多重指数设置为groupby列。

此处有一个SO帖子,您可以查看documentation