2016-03-19 21 views
1

私のSQLコードの結果をPythonのテーブル/データフレームに入れたいと思います。私は以下のコードを入力し、私はこれを行うために使用する必要がどのような追加のコードを知りたいと思っていますPythonのテーブルへのSQLクエリの結果

import pandas as pd  
f = pd.read_csv("/Users/sandeep/Downloads/Python/baseball.csv", header=0) 

q = """ 
     select player, year, 
       case when team='CHN' then 1 else 0 end as team_flag 
     from f 
     where year=2006;  
    """ 
+0

ドキュメント:http://pandas.pydata.org/pandas- docs/stable/io.html#sql-queries –

+0

CSVファイルから値を取得するのは 'from f'ですか?なぜあなたはSQLを使ってCSVをクエリしていますか? –

+0

Yakymのソリューションが最適ですが、CSVファイルが残っている場合は、メモリ内のsqlite3データベースに変換し、_that_ドライバでpandas.read_sqlを使用することができます。 http://stackoverflow.com/a/14432914/1930462 –

答えて

0

使用pandas.read_sql()

df = psql.read_sql(q,db) 

は、DB接続を作成するには、私はあなたが以下のように使用することをお勧め:

import psycopg2 

db= psycopg2.connect("dbname='template1' user='dbuser' host='localhost' password='dbpass'") 
+0

上記の人に感謝します。私はCSVを使用していますので、練習するためのデータがあります。上記の例では、クエリを単純なものとしてコード化し、SQLを使用せずに同じ結果を得ることができます。しかし、複数のテーブルをマージしてサブクエリを行う必要があるより複雑なクエリでは、SQLでは簡単になります。私のために。私の結果をSQLクエリから、私のfテーブルと同じフォルダに取得するにはどうすればいいですか?私はimport psycopg2を試しましたが、psycopg2をpipにインストールしようとしても失敗しました。誰かが私にコードを与えることができれば、Pythonを初めて使っているので、SQLを使って私を得るのに大いに役立つだろう。 – sandeep

+0

また、私は接続の概念を理解していませんでした。 Rの例では、sqlパッケージをインポートしてsqlでコード化することができ、SQLクエリから作成されたデータは他のデータセットと同じ場所にあります。 – sandeep

+0

ここに投稿するdb接続を確立する方法 – johan855

1

あなたのパンダコードを使用すると、.csvファイルではなく、SQLデータベースから読んでいることを示唆しています。このような場合は、何もする必要はなく、fには実際にDataFrameが含まれます。

SQLテーブルからデータフレームを取得するための構文はhere見つけることができます:クエリと(文字列でもよい)接続:

最低でも、次の2つの引数が必要になります。あなたのクエリはSELECT player, year, case FROM table_name WHERE team='CHN' AND year=2006のようなものかもしれません。接続文字列はsqlite:////full_path.sqliteまたはsql_flavor://user:[email protected]:pathです。

SQLというよりも、インジケータをDataFrameに追加するほうが簡単です。 df['team'] = df['team'] == 'CHN'とする必要があります。

関連する問題