python - 扩展 pandas 时遇到问题
问题描述
我正在尝试“扩展熊猫”功能,但似乎无法让它工作。我正在尝试遵循熊猫提供的示例。
到目前为止,我的代码是假数据
import pandas as pd
data =pd.DataFrame({'ID1':[1,2], 'ID2':[3,4], 'value':[5,6]})
@pd.api.extensions.register_dataframe_accessor("ext")
class my_extension:
def __init__(self, pandas_obj):
self.dataset = pandas_obj
@property
def retrieve_ID(self, ID):
return self[self['ID1']==ID]
def method2(self, ID):
return self[self['ID2']==ID]
基本上,我想要的最终结果是输入“data.ext”。并点击选项卡并查看retrieve_ID 和method2 作为我的功能的一个选项
解决方案
很确定你错过了这个self.dataset
部分(并且不认为你需要@property
那里)。顺便说一句,这应该工作:
import pandas as pd
data =pd.DataFrame({'ID1':[1,2], 'ID2':[3,4], 'value':[5,6]})
@pd.api.extensions.register_dataframe_accessor("ext")
class my_extension:
def __init__(self, pandas_obj):
self.dataset = pandas_obj
#@property
def retrieve_ID(self, ID):
return self.dataset[self.dataset['ID1']==ID]
def method2(self, ID):
return self.dataset[self.dataset['ID2']==ID]
推荐阅读
- python - 在python中读取json中的数组
- visual-studio-code - 是否可以在没有 shell 的情况下在 Visual Studio Code 中运行代码?
- laravel - laravel 模型中的 $this->Products 和 $this->Products() 有什么区别?
- flutter - 如何在setter中添加item并在Flutter中与provider一一通知?
- c# - “IPermissionStateManager”的命名空间
- azure-cosmosdb - 如何解释 CosmosDB Mongo API 中 ChangeStream 的恢复令牌?我们可以仅使用恢复令牌(或 changeStreamDocuments)来订购操作吗?
- php - 文件视图到另一个选项卡(PHP)
- kubernetes - Oauth2-proxy 和 Traefik:重定向太多
- scala - spark cogroup/join KeyValueGroupedDataset 与数据集
- python - 无法使用 conda “CondaHTTPError: HTTP 000 CONNECTION FAILED for url”安装软件包