python – 来自pandas数据帧的几列的总和

python – 来自pandas数据帧的几列的总和,第1张

概述所以说我有下表: In [2]: df = pd.DataFrame({'a': [1,2,3], 'b':[2,4,6], 'c':[1,1,1]})In [3]: dfOut[3]: a b c0 1 2 11 2 4 12 3 6 1 我可以这样总结a和b: In [4]: sum(df['a']) + sum(df['b'])Out[4]: 18 所以说我有下表:
In [2]: df = pd.DataFrame({'a': [1,2,3],'b':[2,4,6],'c':[1,1,1]})In [3]: dfOut[3]:    a  b  c0  1  2  11  2  4  12  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]: 18In [4]: sum(df) #that will not work!Out[4]: 21
解决方法 我想你可以使用双倍总和 – 首先 DataFrame.sum创建系列总和和第二个 Series.sum得到系列的总和:
print (df[['a','b']].sum())a     6b    12dtype: int64print (df[['a','b']].sum().sum())18

您还可以使用:

print (df[['a','b']].sum(axis=1))0    31    62    9dtype: int64print (df[['a','b']].sum(axis=1).sum())18

谢谢你pirSquared的另一个解决方案 – 在values之前将df转换为numpy数组然后求和:

print (df[['a','b']].values.sum())18
print (df.sum().sum())21
总结

以上是内存溢出为你收集整理的python – 来自pandas数据帧的几列的总和全部内容,希望文章能够帮你解决python – 来自pandas数据帧的几列的总和所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存