python - 新的 Pandas 产品/求和逻辑

标签 python pandas math

pandas 0.22.0 发布后,sum()product() 发生了重大变化,在What's New Section 。我正在与一些数学迷数学家讨论这个问题,这有一些重大的意义!我想知道为什么要进行此更改。这仅仅是为了解释重采样、分组等吗?看起来 NaN 现在被视为 identity element.

基本数学术语来说,Identity Function始终返回与传递给它的值相同的值。想想x=y1 + 0 = 12 * 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 ?有没有人有任何文档或进一步解释为什么发生这种变化?

最佳答案

您可以在此处查看有关更改的讨论。

https://github.com/pandas-dev/pandas/issues/9422

关于python - 新的 Pandas 产品/求和逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48648321/

相关文章:

python - 如何将数据集拆分为训练集和验证集以保持类之间的比率?

math - 计算 x mod y,其中 y 不能表示为 float

ios - 是否有 CGPath 的替代方法允许计算给定位置的路径上的点?

python - SQLAlchemy 删除不会级联

python - 播放mp3原始音频数据而无需写入文件

python - 如何继承ForeignKey扩展模型字段?

python - 需要 Pandas 中高效 groupby 的帮助

python - 如何按条件从其他列创建新列

math - 用鼠标缩放二维多边形

python - 无法在我的类(class)中使用 sympy 解析器;类型错误 : 'module' object is not callable