我遍历数据库中的表和日期列表以收集数据。这样的事情:将for循环调整为列表理解
df_list = []
for table in table_list:
for date in required_date_range:
query = 'SELECT * FROM {} WHERE row_date = {};'.format(table, date)
df = pd.read_sql_query(sql=query, con=engine)
df_list.append(df)
result = pd.concat(df_list)
有没有办法把这样的循环放入列表理解?它甚至值得吗?
我发现一些示例代码https://tomaugspurger.github.io/modern-4-performance.html
files = glob.glob('weather/*.csv')
weather_dfs = [pd.read_csv(fp, names=columns) for fp in files]
weather = pd.concat(weather_dfs)
它看起来更好,图表显示它的性能会更好,但我似乎无法环绕它我的头,当我试着调整自己的代码。
编辑 -
看来,如果我做了查询的列表,而不是工作。有没有办法让循环和.format初始化为列表理解?
for table in table_list:
for date in required_date_range:
queries = ['SELECT * FROM {} WHERE row_date = {};'.format(table, date)]
dfs = [pd.read_sql_query(query, con=pg_engine) for query in queries]
我没有downvote任何东西。让我试试这个。 – trench