qsxbc

了解更多,请关注公众号“轻松学编程”

一行代码实现对列求和

使用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函数对列求和。

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!

在这里插入图片描述

分类:

技术点:

相关文章:

  • 2021-10-15
  • 2021-09-01
  • 2021-05-30
  • 2021-12-02
  • 2021-07-14
  • 2022-12-23
  • 2022-02-01
猜你喜欢
  • 2021-11-28
  • 2022-01-19
  • 2021-05-29
  • 2022-12-23
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案