Python Pandas类内DataFrame始终为空的原因及解决方法
问题原因
Func类的__init__方法虽然声明了df入参,但方法内部完全没有使用该入参,直接将self.df硬编码赋值为全新的空pd.DataFrame()。你外部传入的filter筛选结果被直接丢弃,根本没有绑定到实例属性上,所以打印结果永远是空DataFrame。
修复方法
修改构造方法的赋值逻辑,把传入的df绑定到实例属性即可,修正后的类代码:
import pandas as pd class Func: def __init__(self, df): self.df = df
修改后运行原有调用代码:
mydf = Func(dftrain.filter(['x', 'y2'])) print(mydf.df)
就能正常输出筛选得到的x、y2列数据,不会再返回空DataFrame。
内容的提问来源于stack exchange,提问作者SAugustus
相关产品推荐
相关产品推荐

