Python 什么级数方法取代了搜索排序?
在他的视频[Data analysis In Python with pandas]()中,Wes McKinney介绍了一个名为searchsorted()的系列方法,该方法给出了一个值,并返回了该系列与该值相交的索引。看来这个功能已经不可用了,是不是有别的东西取代了它 我认为这是由于Pandas 0.13.0中发生的重构,Pandas Series现在是子类NDFrame而不是ndarray,请参见: [10行x 1列]Python 什么级数方法取代了搜索排序?,python,pandas,Python,Pandas,在他的视频[Data analysis In Python with pandas]()中,Wes McKinney介绍了一个名为searchsorted()的系列方法,该方法给出了一个值,并返回了该系列与该值相交的索引。看来这个功能已经不可用了,是不是有别的东西取代了它 我认为这是由于Pandas 0.13.0中发生的重构,Pandas Series现在是子类NDFrame而不是ndarray,请参见: [10行x 1列] [10 rows x 3 columns] In [28]: # y
[10 rows x 3 columns]
In [28]:
# you now have to call `.values` to return a ndarray
df.a.values.cumsum().searchsorted(11)
Out[28]:
5
现在比较一下如果使用numpy数组会发生什么:
In [29]:
temp = np.array(arange(10))
In [32]:
temp.cumsum().searchsorted(11)
Out[32]:
5
这是哪个视频?在熊猫中没有搜索排序方法,在numpy中有一个,你把它和这个混淆了吗?在2:00:21,他使用了
df.prop.cumsum().searchsorted
,这似乎是一个系列的方法。这看起来像是自从Pandas 0.12
或Numpy 1.6/1.7
以来发生了变化,在Pandas 0.13.1
中,你发现你不能再这样做了,你需要做np.searchsorted(df.prop.cumsum()).values,my_new_value)
不那么优雅。这可能与现在从NDFrame
而不是ndarray
导入的熊猫系列有关,因此,您现在失去了这个绝对不那么优雅的组合。。皮蒂
In [29]:
temp = np.array(arange(10))
In [32]:
temp.cumsum().searchsorted(11)
Out[32]:
5