DataFrame
我要覆盖与另一列的一个切片。熊猫的熊猫(v0.8.0)的高级索引分配
在下面的代码抛出列出的错误。
什么将是实现这一目标的有效替代的方法?
df = DataFrame({'a' : range(0,7),
'b' : np.random.randn(7),
'c' : np.random.randn(7),
'd' : np.random.randn(7),
'e' : np.random.randn(7),
'f' : np.random.randn(7),
'g' : np.random.randn(7)})
# overwrite cols
df.ix[:,'b':'d'] = df.ix[:, 'e':'g']
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\pandas\core\indexing.py", line 68, in __setitem__
self._setitem_with_indexer(indexer, value)
File "C:\Python27\lib\site-packages\pandas\core\indexing.py", line 98, in _setitem_with_indexer
raise ValueError('Setting mixed-type DataFrames with '
ValueError: Setting mixed-type DataFrames with array/DataFrame pieces not yet supported
编辑
而作为置换的,我怎么可能还指定行的子集来设置
df.ix[df['a'] < 3, 'b':'d'] = df.ix[df['a'] < 3, 'e':'g']
col_range函数是一个好主意,因为我仍然要在列中指定切片。作为一个置换,我怎么能指定分配中的行的子集(上面编辑的问题)。 – brendan 2012-07-17 09:24:29
用行切片的额外信息更新了答案。 – ely 2012-07-17 12:25:09
感谢您的更新 - 尽管当我尝试df.ix [my_rows,col_range(df,'b','d')] = df.ix [my_rows,'e':'g'] .value时,会引发ValueError也。 – brendan 2012-07-18 09:53:43