pandas 0.22.0
发布后,sum()
和 product()
发生了重大变化,在What's New Section 。我正在与一些数学迷数学家讨论这个问题,这有一些重大的意义!我想知道为什么要进行此更改。这仅仅是为了解释重采样、分组等吗?看起来 NaN
现在被视为 identity element.
用基本数学术语来说,Identity Function始终返回与传递给它的值相同的值。想想x=y
或1 + 0 = 1
或2 * 1 = 2
。 0 是加法的单位元(x+0
将返回 x
),而 1 是乘法的单位元(x*1
将返回返回x
)。
测试如下:
0.20.2
import pandas as pd
import numpy as np
df = pd.DataFrame({'test': [3,2,3], 'nans':[3,np.NaN,np.NaN]})
df2 = pd.DataFrame({'test': [3,2,3], 'nans':[np.NaN,np.NaN,np.NaN]})
df.prod() df2.prod()
nans 3.0 nans NaN
test 18.0 test 18.0
df.sum() df2.sum()
nans 3.0 nans NaN
test 8.0 test 8.0
#----------------------------------------------------
'0.22.0'
df.prod() df2.prod()
nans 3.0 nans 1.0
test 18.0 test 18.0
df.sum() df2.sum()
nans 3.0 nans 0.0
test 8.0 test 8.0
请注意,df
最左边的示例保持不变。然而 df2 发生了变化。这种变化是由于我假设 NaN
被视为单位元素吗?或者这是Red Herring ?有没有人有任何文档或进一步解释为什么发生这种变化?
最佳答案
您可以在此处查看有关更改的讨论。
关于python - 新的 Pandas 产品/求和逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48648321/