1

我知道我犯了难看的初学者错误,所以我不是在寻找任何人花时间编写解决方案,而是为我指明一个方向,让我可以自己解决这个问题。

我编写了一个 Python 脚本,将 SQLITE3 中的数据提取到 Pandas DataFrame (df_1) 中。我从该 DataFrame 中提取一些数据来组成 SQL 查询,该查询用于从同一数据库中的不同表中提取数据并创建第二个数据框 (df_2)。然后我遍历 df_2 以对数据执行计算,并最终将该行附加到同一数据库中的第三个表中。SQL 查询都按预期工作并提供我正在寻找的数据。

df_1 = pd.read_sql_query('SELECT... from 1st table)
    for index, row in df_1.iterrows():
    # Get initial data set and variables for 2nd query...
        if row >= 51:
            # Get data set for calculations on data 50 records before and up to event
            df_2 = pd.read_sql_query('SELECT... from 2nd table)
            # Perform calculations on the data and store those for future use
            df_3.to_sql('INSERT INTO...3rd table)

我只处理 +/- 3000 行,但我希望它会随着时间的推移而增长。迭代和写入第三张表现在需要 30 秒到一分钟,但我知道这可以大大改进,如果我不解决我创建的问题只会变得更糟。

我已经尝试为每一行写入一个 CSV 文件,将所有行附加到单个 CSV,并附加到第 4 个数据帧,然后将其推送到数据库,但这些都没有使计算和第 3 个表填充显着更快或更有效. 在这一点上,我认为问题不在于数据库更新,而在于我接近初始选择和迭代过程的方式。

4

0 回答 0