「df」というpandasデータセットがあります。
以下のようなことができますか?
df.query("select * from df")
ありがとうございました。
Rを知っている人のために、RでSQLコードを実行できるsqldfというライブラリがあります。私の質問は基本的に、pythonのsqldfのようなライブラリがあります
これは pandas.query
ではありません。パッケージpandasql
を見ることができます(Rの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
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
これは、SELECT * FROM df WHERE
が暗示されることを除いて、基本的にSQLステートメントと同じ効果です。