无法在转换Pandas DataFram后添加列

2024-04-18 21:06:05 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个数据帧,看起来像:

a = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})

我可以转置它,并轻松地添加一个新的列值:

^{pr2}$

但是,如果我将日期索引添加到原始数据帧,然后将其转置,则无法向转置添加任何新列。在

a.index = pd.date_range('20130101',periods=3)
aT = a.T
aT['C']=1

引发错误:

ValueError                                Traceback (most recent call last)
<ipython-input-11-703e95b478c3> in <module>()
----> 1 aT['C']=1

/Users/maxsong/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in __setitem__(self, key, value)
   2117         else:
   2118             # set column
-> 2119             self._set_item(key, value)
   2120 
   2121     def _setitem_slice(self, key, value):

/Users/maxsong/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in _set_item(self, key, value)
   2164         """
   2165         value = self._sanitize_column(key, value)
-> 2166         NDFrame._set_item(self, key, value)
   2167 
   2168     def insert(self, loc, column, value, allow_duplicates=False):

/Users/maxsong/anaconda/lib/python2.7/site-packages/pandas/core/generic.pyc in _set_item(self, key, value)
    677 
    678     def _set_item(self, key, value):
--> 679         self._data.set(key, value)
    680         self._clear_item_cache()
    681 

/Users/maxsong/anaconda/lib/python2.7/site-packages/pandas/core/internals.pyc in set(self, item, value)
   1779         except KeyError:
   1780             # insert at end
-> 1781             self.insert(len(self.items), item, value)
   1782 
   1783         self._known_consolidated = False

/Users/maxsong/anaconda/lib/python2.7/site-packages/pandas/core/internals.pyc in insert(self, loc, item, value, allow_duplicates)
   1799             # so our insertion operation failed, so back out of the new items
   1800             # GH 3010
-> 1801             new_items = self.items.delete(loc)
   1802             self.set_items_norename(new_items)
   1803 

/Users/maxsong/anaconda/lib/python2.7/site-packages/pandas/tseries/index.pyc in delete(self, loc)
   1478         new_index : DatetimeIndex
   1479         """
-> 1480         arr = np.delete(self.values, loc)
   1481         return DatetimeIndex(arr, tz=self.tz)
   1482 

/Users/maxsong/anaconda/lib/python2.7/site-packages/numpy/lib/function_base.pyc in delete(arr, obj, axis)
   3454         if (obj < 0 or obj >=N):
   3455             raise ValueError(
-> 3456                     "invalid entry")
   3457         newshape[axis]-=1;
   3458         new = empty(newshape, arr.dtype, arr.flags.fnc)

ValueError: invalid entry 

Tags: keyinselfpandasvaluelibpackagessite