8

データフレームのセルをインクリメントしたい:

from pandas import DataFrame
foo = DataFrame([[1,'a'],[2,'b'],[3,'c']],columns=['a','z'])
foo.ix[0,['a']] += 1

次のエラーが発生します。

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-141-cf9b905bd544> in <module>()
      1 foo = DataFrame([[1,'a'],[2,'b'],[3,'c']],columns=['a','z'])
----> 2 foo.ix[0,['a']] += 1

/home/ubuntu/anaconda/lib/python2.7/site-packages/pandas/core/indexing.pyc in __setitem__(self, key, value)
     86             indexer = self._convert_to_indexer(key)
     87 
---> 88         self._setitem_with_indexer(indexer, value)
     89 
     90     def _has_valid_tuple(self, key):

/home/ubuntu/anaconda/lib/python2.7/site-packages/pandas/core/indexing.pyc in _setitem_with_indexer(self, indexer, value)
    156                 # we have an equal len list/ndarray
    157                 elif len(labels) == 1 and (
--> 158                     len(self.obj[labels[0]]) == len(value) or len(plane_indexer[0]) == len(value)):
    159                     setter(labels[0], value)
    160 

TypeError: object of type 'int' has no len()

以下機能しますが:

foo = DataFrame([[1,4],[2,5],[3,6]],columns=['a','z'])
foo.ix[0,['a']] += 1

これにより、問題はさまざまな列の種類にあると思われます。

最初のデータフレームのセル値をインクリメントするにはどうすればよいですか?

4

1 に答える 1