我有一个连接到SQL数据库并从表中获取数据的函数。我的目标是在迭代器上循环该函数,以便在不同的表上进行相同的查询。该函数可以工作,但下面的for循环不返回任何内容。我是Python新手,我肯定我错过了一些基本的东西
示例代码-
def func(years):
conn = pyodc.connect()
sql_query = """ SELECT TOP 100 X
FROM table_""" + years
df = pd.Dataframe()
if len(df) == 0:
df = pd.read_sql(sql_query, conn)
df['year'] = years
else:
df_temp = df.copy()
temp = pd.read_sql_query)sql_query, conn)
temp['year'] = years
df = temp.append(df_temp)
return df
loop = ['2017', '2018']
for year in loop:
func(year)
需要将
year
作为参数传递给func
函数,如下所示-有关向函数传递参数的详细信息,请参阅here
您的代码也有一些其他逻辑错误-
df_temp
而不是df
李>df
作为函数参数传递(如果您希望在函数中修改它)。为此,还需要在for
循环之前创建一个空数据帧李>您需要向函数传递一个参数,使其接受并循环。此外,您可能需要考虑^ {CD1}},这样您就可以为您的数据文件分配变量。p>
因此,类似这样的东西会起作用,而且更干净:
它将在数年内循环并将所有数据帧连接成1
相关问题 更多 >
编程相关推荐