Выполнение SQL-запроса по набору данных pandas
У меня есть набор данных pandas, называемый 'df'.
Как я могу сделать что-то вроде ниже;
df.query("select * from df")
Спасибо.
Для тех, кто знает R, есть библиотека sqldf, где вы можете выполнить SQL-код в R, мой вопрос в основном, есть ли какая-то библиотека, такая как sqldf в python
Ответы
Ответ 1
Это не pandas.query
должен делать, вы можете посмотреть на пакет pandasql
(такой же, как sqldf
в R)
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
Ответ 2
Вы можете использовать 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
.