簡體   English   中英

Pandas series.rename 給出了 TypeError: 'str' object is not callable 錯誤

[英]Pandas series.rename gives TypeError: 'str' object is not callable error

我無法弄清楚為什么會發生這種情況。 我知道如果我以某種方式“隱藏”了函數名稱,這可能會發生。 但我怎么能在這種情況下?

如果我在終端中打開 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

參考這里的測試示例。

太好了,感謝 Nickil Maveli,他指出我需要 0.18.1,現在它可以工作了。 我錯誤地認為brew upgrade會讓我擁有最新版本。

如果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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM