【问题标题】:how to convert the type of an object from "pandas.core.groupby.generic.SeriesGroupBy" to "pandas.core.series.Series"?如何将对象的类型从“pandas.core.groupby.generic.SeriesGroupBy”转换为“pandas.core.series.Series”?
【发布时间】:2023-03-12 05:40:01
【问题描述】:

我有一个类型为“pandas.core.groupby.generic.SeriesGroupBy”的变量,它是通过对 pandas 数据框的各个字段进行分组而得到的。但是,我想将该变量转换为可以工作但有很多错误的熊猫系列。

这是我尝试过的代码:

w = data.groupby(['dt', 'b'])['w']
w = pd.Series(w)

当我尝试运行这段代码时,它会花费大量时间来执行并且还会产生很多错误。

我得到一个熊猫系列如下:

但是,我期待类似这样的事情:

有没有其他方法可以将 DataFrame 的下面的列分组并将其存储在 pandas Series 中:

【问题讨论】:

  • 尝试在您的分组后添加一个“reset_index()”,如果这不起作用,请按结果发布您的一些分组
  • 嗨@MichaelHsi,当我在分组后使用重置索引时出现以下错误:“AttributeError:无法访问'SeriesGroupBy'对象的可调用属性'reset_index',尝试使用'apply'方法"
  • 你希望我发布哪些结果?

标签: python-3.x pandas dataframe pandas-groupby series


【解决方案1】:

Pandas groupby 对象是可迭代的。使用列表推导,您可以提取分区的子系列。试试:

list_of_series = [s for _, s in data.groupby(['dt', 'b'])['w']]

list_of_series 是一个列表,应该包含您想要的熊猫系列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2017-05-02
    • 2018-11-27
    • 2019-07-12
    相关资源
    最近更新 更多