1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import pandas as pd from functools import reduce
a = [ ['', 0, '', 1, 4.1], ['', 0, '', '', 4], ['123', 0, '', 3, 4, 6,7], ]
def aa(x, y): x = 0 if isinstance(x, str) else x y = 0 if isinstance(y, str) else y return x + y
row_sum = [reduce(aa, i) for i in a]
column_sum_1 = [reduce(aa, i) for i in zip(*a)]
column_sum_2 = list(dict(pd.DataFrame(a).fillna(0).apply(lambda x: '' if any(isinstance(d, str) for d in x) else round(x.sum(), 2))).values()) print('行求和:{}\r\n列求和(相同长度):{}\r\n列求和:{}'.format(row_sum, column_sum_1, column_sum_2))
|