2017-08-24 15 views
2

私は 'df'と呼ばれるパンダデータセットを持っています。pandasデータセットでSQLクエリを実行する

私は以下のようにすることができます。

df.query("select * from df") 

ありがとうございます。 Rを知っている人のために

、あなたがRでSQLコードを実行することができsqldfと呼ばれるライブラリがあり、私の質問は基本的に、あなたがサブセットを返すようにDataFrame.query(condition)を使用することができますのpython

+1

申し訳ありませんが、私たちの想像力が乏しいです。いくつかの具体的なデータと、実際にあなたが望むものを提供してください。 –

+0

'print df'? lol –

+0

あなたがしたいことはできません。データフレームはSQLデータベースではなく、1つのように照会することはできません。 – Deb

答えて

2

これが行うことになってpandas.queryではありません、あなたが(のような同じRでsqldf)をパッケージpandasqlで見ることができ

import pandas as pd 
import pandasql as ps 

df = pd.DataFrame([[1234, 'Customer A', '123 Street', np.nan], 
       [1234, 'Customer A', np.nan, '333 Street'], 
       [1233, 'Customer B', '444 Street', '333 Street'], 
       [1233, 'Customer B', '444 Street', '666 Street']], columns= 
['ID', 'Customer', 'Billing Address', 'Shipping Address']) 

q1 = """SELECT ID FROM df """ 

print(ps.sqldf(q1, locals())) 

    ID 
0 1234 
1 1234 
2 1233 
3 1233 
0

でsqldfのようないくつかのライブラリが存在していますこのようなconditionに一致するデータフレームの:

df = pd.DataFrame(np.arange(9).reshape(3,3), columns=list('ABC')) 
df 
    A B C 
0 0 1 2 
1 3 4 5 
2 6 7 8 

df.query('C < 6') 
    A B C 
0 0 1 2 
1 3 4 5 


df.query('2*B <= C') 
    A B C 
0 0 1 2 


df.query('A % 2 == 0') 
    A B C 
0 0 1 2 
2 6 7 8 

これはSELECT * FROM df WHEREが暗示されることを除いて、基本的にSQL文と同じ効果です。

+0

あなたは追加できます。 'df.eval' https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.eval.html – Wen

関連する問題