python - PandaSQLException:(sqlite3.OperationalError)没有这样的列错误与pandasql
问题描述
我正在尝试从dataframe
带有 pandasql 命令的列中获取:
import yfinance as yf
from pandasql import *
from pandas_datareader import data as pdr
yf.pdr_override()
list_of_companies = 'GOOG,TSLA'
class Analyzer():
def __init__(self,companies):
self.companies = companies
self.yahoo_data = self.load_ystock_data(self.companies)
self.data_sets = {"yahoo_data": self.yahoo_data}
def load_ystock_data(self,companies_list):
data = pdr.get_data_yahoo(companies_list, period='1d')
return data
def query(self, q):
return sqldf(q,self.data_sets)
a = Analyzer(list_of_companies)
query_statement = """
SELECT
Close
FROM
yahoo_data;
"""
df1 = a.query(query_statement)
但检索错误:
PandaSQLException: (sqlite3.OperationalError) no such column: Close [SQL: SELECT Close FROM yahoo_data; ]
任何人都可以帮助我吗?
解决方案
这可能是使用列名时区分大小写的问题。尝试将列名 Close 括在 "" 中,例如:
query_statement = """
SELECT
'Close'
FROM
yahoo_data;
"""