我正在使用Pandas(python)。我想写这一行
a=pd.Series([1,2,3])
但是我错误地把它写成
a=pd.Series=[1,2,3]
当我写出正确的语法时,它会给出错误
ba=pd.Series([1,2,3])
TypeError:' list'对象不可调用
因为它分配了列表pd.Series
= [1, 2, 3]
>>> pd.Series
[1, 2, 3]
如何从pd.Series
删除此列表?
答案 0 :(得分:4)
您可以简单地将pd.Series
重新指定为正确的值:
pd.Series = pd.core.series.Series
仅当仍然存在对原始函数/类的引用时才有效(在这种情况下存在pd.core.series.Series
)。如果你覆盖了某些不能引用其他地方的东西,那就无法工作。
仅举一个例子(根据评论中的问题),假设你覆盖list
,你可以使用builtins
模块(或Python 2中的__builtin__
模块) :
list = [1,2,3] # overwritten list
b = list(range(10)) # throws a "TypeError: 'list' object is not callable"
import builtins
list = builtins.list # restored
b = list(range(10)) # works
然而,重新启动Python解释器通常会更容易(这也应该有效),在某些情况下,它可能只是唯一的选择(如果没有其他任何东西引用被覆盖的值。
答案 1 :(得分:2)
使用reload buildin函数重新加载模块。
reload(pd)
展示:
>>> import pandas as pd
>>> pd.Series
<class 'pandas.core.series.Series'>
>>> pd.Series=[1,2,3]
>>> pd.Series
[1, 2, 3]
>>> reload(pd)
<module 'pandas' from '.local/lib/python2.7/site-packages/pandas/__init__.pyc'>
>>> pd.Series
<class 'pandas.core.series.Series'>