【问题标题】:Convert Series object into Dataframe将 Series 对象转换为 Dataframe
【发布时间】:2021-07-21 14:56:11
【问题描述】:

我在数据帧上使用 groupby 来获得所需的结果。现在 Groupby 结果是一个 Series 对象,我想转换为 Dataframe。我使用了 Pd.Dataframe,但只有 Qty 作为列输出,原始表中的其他列作为索引或系列或元组。

原始数据框

Dataframe 中所需的输出:

所以我首先使用groupby 得到sumQty

StockSummary = StockSummary.groupby(['BussDate','Identifier'])['Qty'].sum()

然后我尝试在下面将 BussDate 和 Identifier 与 Qty 一起作为数据框中的列。但没有成功。 BussDate 和 Identifier 仍以索引/系列/元组的形式出现在数据框中。

StockSummary = pd.DataFrame(StockSummary)

StockSummary.reset_index()

使用 unstack() ,但将 Bussdate 值作为列移动,将标识符作为 1 列移动。不是在寻找那个解决方案

【问题讨论】:

标签: python dataframe series


【解决方案1】:

你需要调用to_frame,因为结果是熊猫系列,然后重置索引

df.groupby(['BussDate',  'Identifier'])['Qty'].sum().to_frame('Qty').reset_index()
   BussDate Identifier  Qty
0      2019        abc   33
1      2020        xyz  112
2      2021        abc  935

如果你想避免调用to_frame,你也可以使用agg

df.groupby(['BussDate',  'Identifier']).agg({'Qty':sum}).reset_index()

   BussDate Identifier  Qty
0      2019        abc   33
1      2020        xyz  112
2      2021        abc  935

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 2012-05-09
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2015-09-15
    • 2017-01-13
    相关资源
    最近更新 更多