私は、 "hub_psm_log_inter"という名前の特定のテーブルにアクセスしたい70のテーブルを持つPostgreSQL DBを持っています。私はそれをパンダに持ち込み、いくつかの操作を適用したいと考えています。私がアクセスしているテーブルは(500000、23)の形をしていますが、これは将来的に増加する可能性があります。 psql.read_sql_queryを実行するのに約3分かかります。私はその時間を短縮したいと思います。私にとって重要な行はどこにありますか(cust_hub_id = 358 & status_switch = 1)。 df_onの形状は10000行しかありません。500000行のPandasにPOstgreSQLテーブルを持たせるための実行時間を短縮する代替方法はありますか?
import numpy as np
import pandas as pd
import psycopg2 as pg
import pandas.io.sql as psql
conn = pg.connect(
database = '',
user = '',
password = '',
host = '',
port = ''
)
df2 = psql.read_sql_query("SELECT * FROM hub_psm_log_inter", conn)
df4 = df2[df2.cust_hub_id == 358]
df4['status_switch'] = pd.to_numeric(df4['status_switch'], errors='coerce')
df_on = df4[df4.status_switch == 1]
私はこれをエクスポートしていませんが...ちょっと考えました。あなたの操作をSQLクエリに組み込もうとしましたか? –
データを操作に持ち込むのではなく、古いSQLクエリーを実行するのではなく、データを操作してみてください。 –
500k行すべてをインポートするか、cust_hub_id == 358とstatus_switch == 1だけをインポートしますか? – lorenzori