【问题标题】:Renaming series column names after applying function and returning mutiple dataframes应用函数并返回多个数据框后重命名系列列名
【发布时间】:2016-02-15 14:59:57
【问题描述】:

我有一个返回多个系列的函数,并且想要重命名系列名称。

 def myfunction(MyDataFrame, UniqueID, Var1, Var2):
     RunningSumA = MyDataFrame.groupby([UniqueID])[Var1].cumsum().reset_index()
     RunningSumB = MyDataFrame.groupby([UniqueID])[Var2].cumsum().reset_index()

     return pd.Series([RunningSumA, RunningSumB])


 Result = myfunction(MyDataFrame, UniqueID, Var1, Var2)

当我查看结果系列的前几行时,结果如下:

Result[0].head()

  index    0
0  216646  0
1  216647  0
2  216648  0
3  216649  0
4  216650  0

我想将index0 重命名为函数内部有意义的名称。我试图重命名列,但无法重命名它们。我该怎么做?

【问题讨论】:

  • 您能否展示您尝试过的但不起作用的方法,docs 非常清楚如何执行此操作,这里有很多关于执行此操作的问题
  • 就在返回之前,我尝试过: RunningSumA = RunningSumA.rename(columns={'index':'UniqueID', '0':'Total'}) 但看起来这已被覆盖通过返回 pd.Series

标签: python function pandas return-value rename


【解决方案1】:

reset_index 接受一个填充列名的名称参数:

...
RunningSumA = MyDataFrame.groupby([UniqueID])[Var1].cumsum().reset_index(name="suma")
RunningSumB = MyDataFrame.groupby([UniqueID])[Var2].cumsum().reset_index(name="sumb")
...

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 2018-03-18
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    相关资源
    最近更新 更多