pandas對列求和


了解更多,請關注公眾號“輕松學編程”

一行代碼實現對列求和

使用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】,拉你進群,大家一起交流學習。
如果文章對您有幫助,請我喝杯咖啡吧!

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM