欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

pandas对列求和

程序员文章站 2022-03-03 19:56:49
了解更多,请关注公众号“轻松学编程”一行代码实现对列求和使用pandas把列表中的字典元素转成二维数组,然后使用pandas函数实现对每一列求和。代码:import pandas as pddatas = [ {'学生': '小红', '语文': None, '数学': 89.5, '英语': 99, '物理':70, 'active': False}, {'学生': '小明', '语文': 88, '数学': 89.5, '英语': 99, '物理':70, 'a...

一行代码实现对列求和

使用pandas把列表中的字典元素转成二维数组,然后使用pandas函数实现对每一列求和。
代码:

import pandas as pd
datas = [ {'学生': '小红', '语文': None, '数学': 89.5, '英语': 99, '物理':70, 'active': False}, {'学生': '小明', '语文': 88, '数学': 89.5, '英语': 99, '物理':70, 'active': True}, {'学生': '小玉', '语文': 78.5, '数学': 79.5, '英语': 92.5, '物理':78, 'active': True}, {'学生': '小刚', '语文': 60, '数学': 59.5, '英语': 87, '物理':None, 'active': False}, ] sum = dict(pd.DataFrame(datas).drop(columns=['学生']).fillna(0).apply(lambda x: round(x.sum(), 2) if all(isinstance(d, (int, float)) and not isinstance(d, bool) for d in x) else '')) print(sum) 

输出:

{ '语文': 226.5, '数学': 318.0, '英语': 377.5, '物理': 218.0, 'active': ''} 

解析:先将数据转成二维数组,然后排除掉不想求和的列,使用0填充nan值,然后对每一列进行遍历,判断每一个元素是否为int或float型,并且不为布尔型,然后使用sum函数对列求和。

本文地址:https://blog.csdn.net/lm_is_dc/article/details/108848604

相关标签: python 数据分析