2017-07-13 6 views
1
pysql = lambda q: pdsql.sqldf(q, globals()) 
    str1 = "select coalesce(ID1, H_ID, [Alternate Source Unique 
    Identifier]) as Master_ID, [Alternate Source Unique Identifier] as Q_ID 
    from crosswalk;" 
    with Timer("Load master_ids:"): 
    master_id_list = pysql(str1) 
    print("Records: {}".format(len(master_id_list))) 
    master_id_list.head() 

pySQLはわずか5秒で動作します!私はpysql :(、任意のアイデアを使用することはできませんのでパンダを使用してSQLのように見えるようにしたい

は、私はPythonで2番目のスクリプトを書きたい?私は2つの提案を行っている

くださいPythonで2番目のスクリプトのあなたの最高の翻訳が?本当に効果的ではありません時間 (必須)パンダない最初の1

def coalesce (df, column_names): 
    i=iter(column_names) 
    column_name=next(i) 
    answer=df[colum_name] 
    for column_name in i: 
    answer = answer.fillna(df[column_name]) 
    return answer 
    coalesce(df, ['first', 'third', 'second']) 

は、あなたのアドバイスをありがとう!あなたが必要とするすべてのレコード数(len(master_id_list))をカウントする場合

+0

あなたが ''コピーを使用している理由STは、直接それを使用します() ''メソッド?私はそれが多くのオーバーヘッドを作り出すと思う。 – Dimgold

+0

ありがとう、コピーの代わりに何をお勧めしますか? –

答えて

0

の用語では、柱をすることができますあなたはユニークな値を探しているなら、試してください

crosswalk['ID'].size

または

crosswalk.shape

crosswalk['ID'].unique().size

+0

ありがとう、ありがとう、私はスクリプト2のアイデアを使用して最初のスクリプトをreformulanteする必要があります...これは感覚を作るのですか? –

+0

私は何かが欠けているかもしれません - 結果の数だけを印刷しないでください? – Dimgold

+0

私はちょうどパンダを使用して、それはSQLのように見せてもらいたい...パフォーマンスの面でも –

関連する問題