我有这个数据框:
Date Trader1 Trader2 Trader3
01/04/2020 4 6 8
02/04/2020 4 6 8
03/04/2020 4 7 8
04/04/2020 4 7 8
05/04/2020 3 5 7
06/04/2020 2 4 7
07/04/2020 2 3 6
08/04/2020 3 3 6
09/04/2020 3 5 7
10/04/2020 3 5 7
11/04/2020 3 5 6
我想使用python / pandas库获取每一列的总计。当我应用a.loc['Total'] = pd.Series(a.sum())
时,我可以得到每一列的总计结果,但是它也将Date
列的值(日期)加在一起。如何只计算所需列的总数?
答案 0 :(得分:1)
您只能通过DataFrame.select_dtypes
选择数字列:
a.loc['Total'] = a.select_dtypes(np.number).sum()
您可以通过DataFrame.drop
删除列Date
:
a.loc['Total'] = a.drop('Date', axis=1).sum()
或通过DataFrame.iloc
选择所有不按位置排在首位的列:
a.loc['Total'] = a.iloc[:, 1:].sum()
print (a)
Date Trader1 Trader2 Trader3
0 01/04/2020 4.0 6.0 8.0
1 02/04/2020 4.0 6.0 8.0
2 03/04/2020 4.0 7.0 8.0
3 04/04/2020 4.0 7.0 8.0
4 05/04/2020 3.0 5.0 7.0
5 06/04/2020 2.0 4.0 7.0
6 07/04/2020 2.0 3.0 6.0
7 08/04/2020 3.0 3.0 6.0
8 09/04/2020 3.0 5.0 7.0
9 10/04/2020 3.0 5.0 7.0
10 11/04/2020 3.0 5.0 6.0
Total NaN 35.0 56.0 78.0
答案 1 :(得分:0)
data[['Trader1','Trader2','Trader3']].sum()
我刚刚看到了您的评论,也许有更好的方法,但是我认为这应该可行
data[data.columns[1:]].sum()
您必须在最后一行中提供范围。