栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用groupby后在Pandas中计算np.diff会导致意外结果

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用groupby后在Pandas中计算np.diff会导致意外结果

好容易重现的例子!更多问题应该是这样!

只需传递一个lambda进行转换(这等同于直接传递函数对象,例如直接传递np.diff(或Series.diff)。因此,这等效于data1 / data2

In [32]: data3['diffs'] = data3.groupby('ticker')['value'].transform(Series.diff)In [34]: data3.sort_index(inplace=True)In [25]: data3Out[25]:          date    ticker     value     diffs0  2013-10-03  ticker_2  0.435995  0.0156271  2013-10-04  ticker_2  0.025926 -0.4100692  2013-10-02  ticker_1  0.549662       NaN3  2013-10-01  ticker_0  0.435322       NaN4  2013-10-02  ticker_2  0.420368  0.1207135  2013-10-03  ticker_0  0.330335 -0.2889366  2013-10-04  ticker_1  0.204649 -0.3450147  2013-10-02  ticker_0  0.619271  0.1839498  2013-10-01  ticker_2  0.299655       NaN[9 rows x 4 columns]

我相信这

np.diff
不会遵循numpy自己的unfunc准则来处理数组输入(从而尝试各种方法来强制输入并发送输出,例如
__array__
__array_wrap__
基于输出的输入)。我不太确定为什么,请在此处查看更多信息。因此,最重要的
np.diff
是无法正确处理索引并自行计算(在这种情况下是错误的)。

Pandas有很多方法,它们不仅仅调用numpy函数,主要是因为它们处理不同的dtypes,处理nans,并且在这种情况下,处理“特殊”差异。例如,您可以将时间频率传递给datelike-
index,在此它可以计算实际求差n的数量。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号