存在重复日期行时如何对Amount列数值求和?能否用groupby实现?
问题解答
完全可以使用pandas的groupby方法实现该需求,具体操作步骤如下:
- 第一步:预处理Amount列,转换为数值类型
原始数据的Amount列包含千位分隔符逗号,属于字符串格式,无法直接做数值计算,需要先做格式转换:import pandas as pd # 替换Amount列的千位分隔符,转为数值格式,异常值转为空值避免报错 df['Amount'] = pd.to_numeric(df['Amount'].str.replace(',', ''), errors='coerce') - 第二步:按Date字段分组求和
调用groupby方法按日期分组,对Amount列执行求和操作:# as_index=False设置Date不作为索引,输出结构与预期格式一致 result = df.groupby('Date', as_index=False)['Amount'].sum() # 可选操作:保留金额的两位小数 result['Amount'] = result['Amount'].round(2)
执行后得到的结果如下,和预期输出结构完全匹配:
| Date | Amount |
|---|---|
| 2019-07-01 | 294507119.96 |
| 2019-07-02 | 417282029.98 |
内容的提问来源于stack exchange,提问作者Nithin Reddy
相关产品推荐
相关产品推荐

