Pandas series.rename 出现 TypeError: 'str' object is not callable 的错误

6
我不知道为什么会发生这种情况。我知道如果函数名在某种程度上被“遮蔽”,就可能发生这种情况。但是在这种情况下,我怎么会这样做呢?
如果我在终端中打开 iPython,然后输入:
import pandas as pd
a = pd.Series([1,2,3,4])
a.rename("test")

我得到了 TypeError: 'str' object is not callable 错误。这可能是什么原因?
更长的错误消息:
   /usr/local/lib/python2.7/site-packages/pandas/core/series.pyc in rename(self, index, **kwargs)
   2262     @Appender(generic._shared_docs['rename'] % _shared_doc_kwargs)
   2263     def rename(self, index=None, **kwargs):
-> 2264         return super(Series, self).rename(index=index, **kwargs)
   2265
   2266     @Appender(generic._shared_docs['reindex'] % _shared_doc_kwargs)

/usr/local/lib/python2.7/site-packages/pandas/core/generic.pyc in rename(self, *args, **kwargs)
    604
    605             baxis = self._get_block_manager_axis(axis)
--> 606             result._data = result._data.rename_axis(f, axis=baxis, copy=copy)
    607             result._clear_item_cache()
    608

/usr/local/lib/python2.7/site-packages/pandas/core/internals.pyc in rename_axis(self, mapper, axis, copy)
   2586         """
   2587         obj = self.copy(deep=copy)
-> 2588         obj.set_axis(axis, _transform_index(self.axes[axis], mapper))
   2589         return obj
   2590

/usr/local/lib/python2.7/site-packages/pandas/core/internals.pyc in _transform_index(index, func)
   4389         return MultiIndex.from_tuples(items, names=index.names)
   4390     else:
-> 4391         items = [func(x) for x in index]
   4392         return Index(items, name=index.name)
   4393

测试示例的参考资料在这里

1
你使用的是哪个版本的pandas? - gabra
嗨,我正在使用 pd.__version__: u'0.17.1'。我已经尝试过 brew updatebrew upgrade,所以一切都应该是最新的。 - johnblund
3
如果你想要在rename中输入标量值,你需要升级至0.18.1或更高版本。文档 - Nickil Maveli
2个回答

1
感谢 Nickil Maveli 的指导,我需要安装0.18.1版本,现在它可以工作了。我的错误是认为 "brew upgrade" 将为我解决拥有最新版本的问题。

0
如果 pandas 版本小于 0.18.1 并且无法升级,则直接设置“name”属性即可实现所需的结果:
s = pd.Series(list(range(2)), name='foo')
s
# 0    0
# 1   1
# Name: foo, dtype: int64
s.name = 'bar'
s
# 0    0
# 1    1
# Name: bar, dtype: int64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接