我想更改pandas中的value_counts
函数,并试图找出它不起作用的原因
如果我这样做
>>> import pandas as pd
>>> pd.core.algorithms.value_counts = None
>>> pd.Series([1,2,3]).value_counts()
3 1
2 1
1 1
dtype: int64
我希望有一个TypeError
然而,如果我这样做
>>> import pandas as pd
>>> pd.core.base.value_counts = None #or a modified function
>>> pd.Series([1,2,3]).value_counts()
TypeError: 'NoneType' object is not callable
我得到了TypeError
这种行为差异的原因是什么?
如何修改pd.core.algorithms.value_counts
函数,使其改变所有使用它来构造value_counts
方法的类的行为
你能试着用
pd.core.base.IndexOpsMixin.value_counts = None
吗这使得
pd.Series.value_counts
和pd.Index.value_counts
都成为None
。你还有什么要看的吗说明:
在
pd.core.base
中有一个导入from pandas.core.algorithms import duplicated, unique1d, value_counts
所以,
pd.core.base.value_counts = pd.core.algorithms.value_counts
现在,即使将
pd.core.algorithms.value_counts
设为None
,在base
中的value_counts
对象仍然包含旧的value_counts
函数。所以,这是行不通的显然,如果你直接
pd.core.base.value_counts
None
,那就行了这与我的解决方案实际上是一样的,因为
pd.core.base.IndexOpsMixin.value_counts
只返回pd.core.base.value_counts
相关问题 更多 >
编程相关推荐