我遍歷數據庫中的表和日期列表以收集數據。這樣的事情:將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