2016-04-05 7 views
2

私はtabledata.csvファイルを持っています。私はpandas.read_csvを使って、特定の条件で特定の列を読んだり選択したりしています。IPythonノートブックでのCSVファイルのSQL文

例えば、次のコードを使用して、すべての「名前」を選択します。session_id =1は、datascientistworkbenchのIPython Notebookで問題なく動作しています。私はcsvファイルを読んだ後

   df = pandas.read_csv('/resources/data/findhelp/tabledata.csv') 
      df['name'][df['session_id']==1] 

私は疑問に思う、それは何らかの形でSQLデータベースとして、それを「スイッチ/読み」することが可能です。 (私はかなり正しい言葉を使ってそれをうまく説明していないと確信しています、それについて残念です!)。しかし、私が望むのは、特定の条件を持つ特定の行を選択するために、IPythonノートブックでSQLステートメントを使用したいということです。私のようなものを使用でき同様:

Select `name`, count(distinct `session_id`) from tabledata where `session_id` like "100.1%" group by `session_id` order by `session_id` 

をしかし、私は推測する私は、SQLステートメントを使用することができるように、別のバージョンにcsvファイルを変更する方法を把握する必要があります。多くのthx!

+0

異なるフォーマット間でデータを簡単に移動できる[Odo](http://odo.readthedocs.org/en/latest/)(例えば、csvをSQLデータベースにロードすることができます)。 –

+0

これは、パンダとSQLの比較方法を紹介したものです。その間、 – measureallthethings

+0

もできます。df.head()または使用しているデータの例を提供することは可能でしょうか? – measureallthethings

答えて

3

ここには、組み込みsqlite3パッケージを使用したpandasとsqlのクイックプライマーがあります。一般的に言って、あなたは何らかの形でパンダですべてのSQL操作を行うことができます。しかしデータベースはもちろん有用です。まず、元のdfをSQLデータベースに格納して、照会できるようにします。手順は以下のとおりです。あなたが保存された共通照会するためのインターフェース(ないSQL)とプロセスデータを提供する、[ブレイズ](http://blaze.readthedocs.org/en/latest/quickstart.html)で見たいと思うかもしれません

import pandas as pd 
import sqlite3 

#read the CSV 
df = pd.read_csv('/resources/data/findhelp/tabledata.csv') 
#connect to a database 
conn = sqlite3.connect("Any_Database_Name.db") #if the db does not exist, this creates a Any_Database_Name.db file in the current directory 
#store your table in the database: 
df.to_sql('Some_Table_Name', conn) 
#read a SQL Query out of your database and into a pandas dataframe 
sql_string = 'SELECT * FROM Some_Table_Name' 
df = pd.read_sql(sql_string, conn) 
+0

thx !!!!私はurコードをテストしていました。 "utf-8 'コーデックは、位置27のバイト0x89をデコードできません:無効な開始バイトです。"何かチャンスがあれば助けてくれますか?どうも!! –

+0

あなたはそれがどのコード行にあるのか教えていただけますか? df = pd.read_csv( '/ resources/data/findhelp/tabledata.csv'、encoding = 'utf8') – Sam

+0

をdf行に置いて修正することができます(df = pd.read_csv .... )。私はecoding = 'utf8'を追加しましたが、まだ動作しておらず、私に同じエラーを与えました。私のCSVファイルに何か問題がありますか?どうも! –

関連する問題