Pandas DataFrame列重命名错误....我是傻吗?

时间:2013-11-24 04:15:53

标签: pandas rename dataframe

所以我有两个DataFrame,每个都有很多列,一个来自一个新的查找表,另一个是已存储在我的数据库中的已知值。唯一具有相同名称的列是hash,但其中一列有id而另一列有Id(是错误的命名!)然后我调用:

lookup = lookup.merge(known, on='hash', how='left')
lookup = lookup.rename(columns={'Id':'db_id'})

你知道要合并它们并更新名称,以便我不必记住哪一个是Id,哪个是id,我之前已经调过几行

known = known.rename(columns={'Hash':'hash'})

因此,我可以预先形成哈希,一切都很好,对世界也是如此。然后我去改变我的散列算法,更新我的数据库并重新运行。现在,像

lookup = lookup.rename(columns={'Id':'db_id'})

不会抛出错误,但会导致一个非常长的错误字符串,结尾于:

/usr/lib/python2.7/dist-packages/pandas/core/frame.pyc in _apply_standard(self, func, axis, ignore_failures)
   4489                     # no k defined yet

   4490                     pass
-> 4491                 raise e
   4492 
   4493 

TypeError: ("'NoneType' object is not iterable", u'occurred at index hash')

存储在lookup中,您知道这是一个问题。如果我将我的代码更改为:

known = known.rename(columns={'Hash':'hash', 'Id':'db_id'})
lookup = lookup.merge(known, on='hash', how='left')

对于这个世界来说,一切都是好的和正确的,除非我对它的方式感到非常困惑,然后不再有效。

0 个答案:

没有答案