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

bmp9r5qi  于 2023-01-03  发布在  其他
关注(0)|答案(2)|浏览(156)

我是新的编码,你能请分享详细的代码This is the given data, I want to iterate in the amount column and each sum to a new column这样:我还得找到和的最小值和它的日期,和的最大值和它的日期。
其实我是这样问的
请首先应用贷项事务处理以计算指定日期的余额。

输入CSV格式:

csv文件中有多个客户ID
客户ID、日期、金额

输出格式:

客户ID,MM/YYYY,最小余额,最大余额,期末余额”
这是解决质询的最佳方法吗?
谢谢

jobtbby3

jobtbby31#

你可以使用cumsum来添加一个累加和列,sum函数只是将一列中的所有值相加,所以它不能满足你当前的要求。
因此,它将不是d.['Amounts'].sum()而是:
d['sum'] = d['Amounts'].cumsum()
在这里,可以使用.idxmin().idxmax()函数搜索sum列,以获取分别包含min和max的行的索引,最后,可以在d中索引这些行并获取相关的日期。

1cklez4t

1cklez4t2#

多个客户

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

相关问题