python - __getitem__ 返回阻止算术运算符重载的继承数据帧访问器
问题描述
添加getitem _后,我的“+”df-算术运算符重载的实现不再有效。有人会对解决方案有建议吗?
class df(pd.DataFrame)
...
def __getitem__(self,key):
return super(df,self).iloc.__getitem__(key)
...
...
def __add__(self,o)
return (self).add(o).combine_first(self)
def main():
num_rows_1=8
dates_1 = pd.date_range('2000-01-01',periods=num_rows_1)
df_1=df(pd.DataFrame(np.random.randn(num_rows_1,4),index=dates_1,columns=['A','B','C','D'])
num_rows_2=3
dates_2 = pd.date_range('2000-01-03',periods=num_rows_2)
df_2=df(pd.DataFrame(np.random.randn(num_rows_2,4),index=dates_2,columns=['A','B','C','D'])
print (df_1 + df_2)
if __name__='__main__':
main()
如果getitem部分被注释掉,它可以工作,但如果包含,运行时返回:“TypeError: Cannot index by location index with a non-integer key”
+ op-overload 代码与 getitem 代码似乎存在冲突。有没有办法解决这个问题?(对片段中的任何错字表示歉意)
提前感谢您的任何反馈..
堆栈跟踪: df_result = df_1 +df_2 .. return (self).add(o).combine_first(self) .. return self.combine(other,combiner,overwrite=False) .. series=this[col] .. return超级(df,self).iloc。getitem (key) .. return self._getitem_axis(maybe_callable,axis=axis) .. File "...\site-packages\pandas\core\indexing.py", line 2129, in _getitem_axis raise TypeError("Cannot index by具有非整数键的位置索引")
解决方案
推荐阅读
- excel - 包含时钟的工作簿会自动重新打开
- arduino - 什么是“调用'println(decode_results *)'没有匹配的函数”?
- django - Django 的 DB API 无法返回所有结果
- c++ - 如何存储http响应并发送到浏览器?
- sql - 当我搜索任何关键词时,我的数据重复了
- sql - ORDER 中无法识别的别名
- java - RichPresence 不再适用于 JDA
- python - selenium.common.exceptions.TimeoutException:消息:脚本超时:30 秒内未收到结果
- php - 地理位置显示不同的城市不是很准确
- javascript - API0005 从 Google Apps 脚本到 BitStamp API 的无效签名连接错误