Pandas如何看待聚合函数sum与di

2024-05-23 23:21:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python和pandas,我有一个数据集,看起来像:

                            District             Race/Ethnicity      Value 
3   Achievement First Academy District  Black or African American    30.0   
4   Achievement First Academy District  White                         0.0  
10  Amistad Academy District            Black or African American    40.5      
11  Amistad Academy District            White                        23.1  

所以如果我想按每个地区的总和分组和排序。我只需要做以下几点:

^{pr2}$

我从中得到了我想要的:

District                                    Value                                                 
Achievement First Academy District           30.0
Amistad Academy District                     63.6

但是假设我想要每个地区的差异。我要做的是:

df= df.groupby('District')
df = abs(df.diff()).sort_values('Value', ascending=False)

我得到的输出和我做加法时完全不同。我得到:

    Value
4   30.0
10  17.4

我真的是一个输出就像我用sum的时候。熊猫在处理和和与差的方式上有什么不同吗?当我做求和时,如何得到输出呢?在


Tags: or数据pandasdfvalue地区firstblack
1条回答
网友
1楼 · 发布于 2024-05-23 23:21:56

sum将所有元素相加成一个数字。diff获取元素和它之前的元素之间的差异(复数),并返回所有元素的序列。你认为它们是平行的,因为你的团队只有两个元素,但一般来说它们根本就不是平行的。下面是一个简单的例子:

>>> x = pandas.Series([5, 4, 3, 2, 1])
>>> x.sum()
15
>>> x.diff()
0   NaN
1    -1
2    -1
3    -1
4    -1
dtype: float64

如果您知道您想要的差异始终是每个组中第一个元素减去第二个元素,那么您可以这样做:

^{pr2}$

但是如果你有一所学校有两个以上的种族,你必须重新考虑你想要计算什么,因为在这种情况下,“差异”将不会得到很好的定义。在

相关问题 更多 >