Python中GroupBy分组后去除指定列小数并取整的方法
解决方法:去除数值列的小数并四舍五入取整
当然有办法实现!你可以通过round()函数先对数值进行四舍五入,再用astype(int)将其转换为整数类型,这样就能彻底去掉小数部分,同时保证数值是四舍五入后的结果。
完整代码示例
# 原有的分组聚合逻辑 tranSummary = data[data['upload_date'] == Date].groupby(['tran_type'], as_index=False).agg({"Gross Loan Amount": "sum"}) tranSummary['Pct'] = (tranSummary['Gross Loan Amount'] / sum(tranSummary['Gross Loan Amount'])) * 100 # 处理Gross Loan Amount列:四舍五入到整数后转为int类型 tranSummary['Gross Loan Amount'] = tranSummary['Gross Loan Amount'].round(0).astype(int) # 处理Pct列:同样四舍五入取整 tranSummary['Pct'] = tranSummary['Pct'].round(0).astype(int)
关键说明
round(0):将数值四舍五入到小数点后0位(即整数位)astype(int):把浮点数类型转换为整数类型,这样输出时就不会显示.0这类小数部分
如果你想在计算Pct的时候直接完成处理,也可以合并成一行:
tranSummary['Pct'] = ((tranSummary['Gross Loan Amount'] / sum(tranSummary['Gross Loan Amount'])) * 100).round(0).astype(int)
处理后的输出会变成这样:
tran_type Gross Loan Amount Pct 0 BB 26047120000 20 1 RRP 103800300000 80
内容的提问来源于stack exchange,提问作者SBad
相关产品推荐
相关产品推荐

