[英]Sum of several columns from a pandas dataframe
所以说我有下表:
In [2]: df = pd.DataFrame({'a': [1,2,3], 'b':[2,4,6], 'c':[1,1,1]})
In [3]: df
Out[3]:
a b c
0 1 2 1
1 2 4 1
2 3 6 1
我可以这样总结a和b:
In [4]: sum(df['a']) + sum(df['b'])
Out[4]: 18
但是,对于较大的数据帧,这不是很方便,您需要将多个列相加在一起。
是否有更简洁的方法来对列进行求和(类似于下面的内容)? 如果我想在不指定列的情况下对整个DataFrame求和,该怎么办?
In [4]: sum(df[['a', 'b']]) #that will not work!
Out[4]: 18
In [4]: sum(df) #that will not work!
Out[4]: 21
我想你可以使用双sum
- 第一个DataFrame.sum
创建Series
和和第二个Series.sum
获得Series
总和:
print (df[['a','b']].sum())
a 6
b 12
dtype: int64
print (df[['a','b']].sum().sum())
18
您还可以使用:
print (df[['a','b']].sum(axis=1))
0 3
1 6
2 9
dtype: int64
print (df[['a','b']].sum(axis=1).sum())
18
谢谢pirSquared的另一个解决方案 - 通过values
将df
转换为numpy array
然后sum
:
print (df[['a','b']].values.sum())
18
print (df.sum().sum())
21
也许你看起来像这样:
df["result"] = df.apply(lambda row: row['a' : 'c'].sum(),axis=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.