【问题标题】:groupby in pandas messes with row indexespandas 中的 groupby 与行索引混淆
【发布时间】:2017-07-10 11:35:15
【问题描述】:

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

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

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

它返回一个如下所示的表:

很遗憾,对于这个返回的表,由于格式不寻常(其中 customer_name 和 purchase_days 不在第一行,而是在第二行),我无法对其运行 groupby。

有什么技巧可以让我计算每位顾客光顾商店的购买天数吗?

【问题讨论】:

  • 您能否将实际结果添加为代码而不是纸上的绘图?我很感激你的努力:P

标签: python pandas


【解决方案1】:

您需要做的是重置索引。

由于您应用.groupby 具有多列的数据框,

返回的数据帧将有一个MultiIndex

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

您仍然可以将.groupby 与多索引数据框一起应用。

在方法pandas.DataFrame.groupbydocumentation中,

有一个参数level,您可以使用它来将多索引设置为分组列。

有一个关于此的 SO 线程,您可以查看 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多