python – DataFrame.set_index返回’str’对象不可调用

我找不到解决方法,我不是在寻找解决方案;大多数情况下,我只是想了解为什么我的原始方法不起作用,因为周围的工作确实如此.

我有一个2803行的数据框和默认数字键.我想用第0列中的值替换它,即TKR.

所以我使用f.set_index(‘TKR’)得到

f.set_index( ‘TKR’)

Traceback (most recent call last):

  File "<ipython-input-4-39232ca70c3d>", line 1, in <module>
    f.set_index('TKR')

TypeError: 'str' object is not callable

所以我想也许我的TKR专栏中有一些噪音而不是滚动2803行我尝试f.head().set_index(‘TKR’)

当这工作时,我尝试f.head(100).set_index(‘TKR’)也可以.我继续使用500,1000和1500的参数,所有参数都有效. 2800,2801,2802和2803也是如此.最后我坚持下去

f.head(LEN(F)).set_index( ‘TKR’)

它可以在下个月处理不同大小的数据帧.我只想理解为什么这个工作和原始的,更简单的,并且(我认为)书的方法没有.

我在Windows 10机器上使用Python 3.6(64位)和Pandas 0.18.1

最佳答案 我知道已经有很长一段时间了,但我认为有些人将来可能需要答案.

只要’TKR’是DataFrame f的一列,你对f.set_index(‘TKR’)的处理是完全正确的.

也就是说,这是一个你不应该拥有的错误.总是因为你在以前的步骤中重新定义了python的一些内置函数方法或函数(可能是’set_index’).因此,修复方法是检查您的代码以找出哪个部分是错误的.

如果您正在使用Jupiter笔记本,重新启动它并运行此块只能解决此问题.

点赞