2017-08-24 97 views
2

我有一個熊貓的數據集,名爲「DF」。執行一個SQL查詢在大熊貓數據集

我怎麼可以這樣做以下;

df.query("select * from df") 

謝謝。

對於那些誰知道R,有一個叫sqldf在那裏你可以在R中進行SQL代碼庫,我的問題是,基本上,是有一些像sqldf庫在Python

+1

對不起,我們的想象力是窮人。請提供一些具體的數據和你真正想要的。 –

+0

'print df'?大聲笑 –

+0

你想要什麼是不可能的。數據框不是SQL數據庫,不能像一個查詢。 – Deb

回答

2

這不是pandas.query應該做的,你可以看一下包pandasql(在讀同樣喜歡sqldf

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

您可以使用DataFrame.query(condition)返回一個子集數據幀匹配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 

這基本上是相同的效果作爲SQL語句,除了SELECT * FROM df WHERE是隱含的。

+0

您可以添加。 'df.eval' https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.eval.html – Wen