python - 使用 pandas 中的 read_csv 在 Python 中创建 pandas.DataFrame 子类的实例
问题描述
我正在pandas.DataFrame
通过继承添加一些功能:
import pandas as pd
class my_class(pd.DataFrame):
def __init__(self, *args):
super().__init__(*args)
def my_func(self):
print('New function!')
但我还是想用它pandas.read_csv
来加载数据框。我在这里检查过,似乎不鼓励简单地将实例更改__class__
为。有一个更好的方法吗?谢谢!pandas.DataFrame
my_class
特别是对于上面引用的类,我可以使用data
参数 inpandas.DataFrame.__init__
来传递 in 的结果pandas.read_csv
,但是如果该参数不可用我该怎么办?
解决方案
在您的类声明中,您缺少def __new__(cls,...)
初始化实例的 dunder 方法。这应该有效:
import pandas as pd
class my_class(pd.DataFrame):
def __new__(cls, *args, **kwargs):
return super().__new__(cls)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def my_func(self):
print('New function!')
不确定,这就是它所要求的,但如果你创建自己的pandas.DataFrame
,你可以通过在阅读后初始化它来将新的“read_csv(file)”读取数据帧“转换”为自定义数据帧。因此,通过上述声明,这有效:
my_class({'test_col': [1,2,3]}).to_csv('test_my_class.csv')
df = pd.read_csv('test_my_class.csv')
my_class(df)
推荐阅读
- azure - Azure Bot 服务示例 AuthenticationBot 登录卡不起作用 (application/vnd.microsoft.card.oauth)
- php - Sphinx:具有某些字符的 PDO 异常
- python - 无法运行exe文件?
- javascript - 如何检测图像是否可见?
- python - 如何使用pickle将每个cookie文件加载到文件夹中
- android - 使用 HERE API 获取我的位置的问题(Wifi)[更新]
- android - Linkedin API:accessTokenValue 没有值和“未设置访问令牌”错误
- swift - 如何在 SpriteKit 中创建垂直可滚动区域(逐步)?
- godot - Godot Light2D 暴露 tilemap 边界线
- java - 旋转手机时 DrawerView 正在清除