我有一个如下所示的数据集,但是当我尝试对列进行求和时,它将从年份中求和。我想要的是从1月到12月的总和。
我尝试过的代码是data.sum(axis=0)
Out[64]:
year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
0 1981 32 26 62 22 23 98 80 163 13 122 144 109
1 1982 42 30 54 50 192 37 52 77 48 46 74 52
2 1983 78 10 107 46 36 105 80 25 188 58 36 78
3 1984 72 29 34 11 29 97 67 51 145 114 51 51
4 1985 83 37 42 69 23 25 104 50 76 53 74 63
5 1986 50 12 69 51 77 39 121 234 56 45 54 89
6 1987 23 28 22 4 55 77 92 122 65 34 54 24
7 1988 72 64 40 37 41 51 106 173 36 69 38 66
8 1989 9 28 51 55 38 42 11 68 23 74 55 59
9 1990 74 79 56 46 30 25 128 42 153 79 60 42
10 1991 59 29 41 24 78 142 54 124 71 27 47 37
答案 0 :(得分:0)
首先过滤列,然后sum
:
In [274]:
df[df.columns[1:]].sum(axis=0)
Out[274]:
Jan 594
Feb 372
Mar 578
Apr 415
May 622
Jun 738
Jul 895
Aug 1129
Sep 874
Oct 721
Nov 687
Dec 670
dtype: int64
如果你想对行式传递axis=1
求和:
In [291]:
df['total'] = df[df.columns[1:]].sum(axis=1)
df
Out[291]:
year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec total
0 1981 32 26 62 22 23 98 80 163 13 122 144 109 894
1 1982 42 30 54 50 192 37 52 77 48 46 74 52 754
2 1983 78 10 107 46 36 105 80 25 188 58 36 78 847
3 1984 72 29 34 11 29 97 67 51 145 114 51 51 751
4 1985 83 37 42 69 23 25 104 50 76 53 74 63 699
5 1986 50 12 69 51 77 39 121 234 56 45 54 89 897
6 1987 23 28 22 4 55 77 92 122 65 34 54 24 600
7 1988 72 64 40 37 41 51 106 173 36 69 38 66 793
8 1989 9 28 51 55 38 42 11 68 23 74 55 59 513
9 1990 74 79 56 46 30 25 128 42 153 79 60 42 814
10 1991 59 29 41 24 78 142 54 124 71 27 47 37 733
答案 1 :(得分:0)
只需删除年份列并将月份列相加:
data.drop('year', axis=1).sum(axis=1)
但我猜你想要保留每笔金额的年份信息。更好的方法是将年份列设置为索引和总和:
data.set_index('year').sum(axis=1)