【问题标题】:what is wrong with this code ? pandas python这段代码有什么问题?熊猫蟒
【发布时间】:2015-05-29 19:50:30
【问题描述】:

类股:

def init(self,ticker): self.ticker = 股票代码 con = lite.connect(".//stocks.db") self.data = pd.read_sql("SELECT * FROM daily where ticker = '" + ticker + "' ORDER BY datum DESC LIMIT 100",con,index_col="datum") con.close()

定义数据(自我): 打印self.data

def 代码(自我): 返回 self.ticker

定义基准(自身): 返回 self.data.index[0]

inv = stock("TSLA")
print inv.ticker
print inv.datum

给出这个输出:

特斯拉 main.stock 实例位于 0x03E061C0>>

因此可以打印股票代码字符串,但不能打印最后一个数据字段

【问题讨论】:

  • 基准从何而来?你继承了哪些类?
  • 你能发布来自inv.info() 的输出吗?我假设你认为datum 列存在?
  • @EdChum inv.info()在哪里?
  • @Zizouz212 我相信 OP 正在为 inv 使用 pandas 数据帧
  • @EdChum 修改了评论以检查继承,因为我相信 inv 是他的类的一个实例。

标签: python pandas


【解决方案1】:

您的第一个错误是您没有关闭 SQLite 连接。

__init__:

con.close() # instead of only con.close

您的另一个问题是pandas.read_sql() 返回pandas.Dataframe。查看文档后,pandas Dataframe 没有方法datum

我还应该指出,您调用的函数并不多;你只是简单地看看它们是什么。您必须使用方括号 (inv.ticker()) 调用函数,该函数的参数位于方括号内。

【讨论】:

    猜你喜欢
    • 2015-04-25
    • 2018-09-09
    相关资源
    最近更新 更多