Панда, эквивалентная
select * from table where column_name = some_value
, является
table[table.column_name == some_value]
Множественные условия:
table[(table.column_name == some_value) | (table.column_name2 == some_value2)]
или
table.query('column_name == some_value | column_name2 == some_value2')
import pandas as pd
# Create data set
d = {'foo':[100, 111, 222],
'bar':[333, 444, 555]}
df = pd.DataFrame(d)
# Full dataframe:
df
# Shows:
# bar foo
# 0 333 100
# 1 444 111
# 2 555 222
# Output only the row(s) in df where foo is 222:
df[df.foo == 222]
# Shows:
# bar foo
# 2 555 222
В приведенном выше коде это строка df[df.foo == 222]
, которая дает строки на основе значения столбца, 222
в этом case.
Возможны также множественные условия:
df[(df.foo == 222) | (df.bar == 444)]
# bar foo
# 1 444 111
# 2 555 222
Но в этот момент я бы рекомендовал использовать функцию query , так как он менее подробный и дает тот же результат:
df.query('foo == 222 | bar == 444')
Мне часто задают вопрос. AFAI исследования есть 2 ключа его худшего.
- Если массив уже отсортирован, независимо от того, идет ли он по возрастанию или по убыванию , в дополнение к выбирается круг как минимальный (наименьший) или максимальный (наибольший) элемент списка , [2,3,4] или [4,3,2]
- Если все элементы одинаковы. [2,2,2]