了解更多,請關注公眾號“輕松學編程”
一行代碼實現對列求和
使用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】,拉你進群,大家一起交流學習。
如果文章對您有幫助,請我喝杯咖啡吧!

