什么是计算每日累计金额的最佳方法?

问题描述 投票:0回答:1

我找到了一种获取所需号码的方法,但是我希望能以一些不那么麻烦的方式获得一些建议。到目前为止,我需要连续运行的事务总数才能使它成图。我只有几列数据:id,日期和金额。这是我到目前为止的代码:

fy20 = pd.read_excel('./data/transactions.xlsx', parse_dates=['date'])
def daily_money(df):
    df = df.groupby('date').amount.sum()
    df = df.groupby(df.index.day).cumsum()
    df = df.cumsum().to_frame().reset_index()
    return df

fy20 = daily_money(fy20)

这似乎可以实现目标,但似乎必须有一种更简单的方法。如果您对如何简化此操作有任何建议,请告诉我。

python-3.x pandas datetime pandas-groupby cumsum
1个回答
0
投票

在我看来这应该可以工作:

df.groupby('date')['amount'].sum().cumsum()

这是有效的,因为DataFrame.groupby自动按组键排序,因此累积总和已经在查看其所需的数据。

如果您希望将其作为具有新索引而不是序列的DataFrame,则可以只使用Series.reset_index,它将首先将序列转换为DataFrame,但是除非您需要日期作为普通列(而不是索引) )之后,您不需要这样做。

© www.soinside.com 2019 - 2024. All rights reserved.