我想对列文件的值求和,并将每个求和附加到同一csv文件中的新列



我是新来的编码,你能分享详细的代码吗这是给定的数据,我想在amount列中迭代,每个求和到一个新列是这样的:添加后,所有这些金额应该在新的列中我还必须找到和的最小值和它的日期,和的最大值和它的日期。

实际上我的问题是这样问的

请先应用信用交易来计算某一天的余额。

输入CSV格式:

csv文件中有多个客户id

客户id,日期,金额

输出格式:

CustomerID, MM/YYYY, Min Balance, Max Balance, Ending Balance">

这是解决查询的最佳方法吗?

谢谢

可以使用cumsum添加累加和列。sum函数只是将单个列中的所有值相加,因此它不能满足您当前的要求。

所以不是d.['Amounts'].sum()而是:

d['sum'] = d['Amounts'].cumsum()

从那里,您可以使用.idxmin().idxmax()函数搜索sum列,分别获取包含最小值和最大值的行的索引。最后,您可以在d中为这些行建立索引并获取相关的日期。

多个客户

df['sum']=df.groupby(['Date','Customer ID'],as_index=False)['Amount'].cumsum()
df
Out[23]: 
Customer ID        Date  Amount   sum
0        C231  11-01-2022    9232  9232
1        C231  11-02-2022    6061  6061
2        C231  11-03-2022    5108  5108
3        C231  11-04-2022    9086  9086
4        C232  11-03-2022     100   100
5        C232  11-03-2022     200   300

客户的最小、最大和总和

df.groupby('Customer ID').agg({'Amount': ['min', 'max','sum']})
Out[25]: 
Amount             
min   max    sum
Customer ID                    
C231          5108  9232  29487
C232           100   200    300

每月按客户划分的最小值、最大值和总和

df.groupby([df.Date.dt.strftime('%b/%Y'),'Customer ID']).agg({'Amount':['min','max','sum']}).reset_index()
Out[111]: 
Date Customer ID Amount             
min   max    sum
0  Nov/2022        C231   5108  9232  29487
1  Nov/2022        C232    100   200    300

最新更新