我找到了一种获取所需号码的方法,但是我希望能以一种不太麻烦的方式获得一些建议。到目前为止,我需要连续运行的事务总数才能使它成图。我只有几列数据: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)
这似乎可以实现目标,但似乎必须有一种更简单的方法。如果您对如何简化此操作有任何建议,请告诉我。
答案 0 :(得分:1)
在我看来这应该可以工作:
df.groupby('date')['amount'].sum().cumsum()
之所以可行,是因为DataFrame.groupby会自动按组键进行排序,因此累积总和已在查看其所需的数据。
如果您希望将其作为具有新索引的DataFrame而不是Series,则可以使用Series.reset_index
,它将首先将系列转换为DataFrame,但是除非您需要将日期作为普通列(而是而不是索引),则无需这样做。