выбрать строки из запроса в DataFrame в Pandas

1

Я уверен, что я задаю простой вопрос, но еще не понял. У меня есть panda df, и я хочу запустить этот базовый запрос на нем

Select a,b,c 
FROM TABLE
WHERE (TABLE.time >= x ) && (TABLE.time <= y)
GROUP BY c

поэтому, если у меня есть таблица

A    B    time

a    b    time1
c    d    time2
e    f    time3

Я хотел бы только вернуть a, b, c, где время больше или меньше, чем те, что указаны в запросе. Также будет ли этот запрос на Dataframe дать мне другой df, если я назначу запрос переменной, скажу что-то вроде

df2 = df.query()

Я надеюсь это имеет смысл

  • 0
    Так что же мешает вам реализовать это?
  • 0
    вы действительно можете использовать df.query если вы не знаете pandas.pydata.org/pandas-docs/version/0.22.0/generated/…
Показать ещё 1 комментарий
Теги:
pandas
dataframe
python-3.x

2 ответа

0
Лучший ответ

Как упоминалось в Документах Документов

По умолчанию метод query() использует слегка модифицированный синтаксис Python. Он используется для применения условия, как больше, чем меньше. метод запроса не поддерживает группу сам по себе, а в кадре данных есть метод groupby, который работает одинаково.

Я попытался написать код для вашего запроса, посмотрев на него:

g= table.query('time>=x and time<y').groupby('C')

for name,group in g:
    print(name , group[['a','b','c']])

Без использования query():

g = table[(table.time>=x) & (table.time <= y)].groupby('C')

for name,group in g:
        print(name , group[['a','b','c']])
0

Поэтому я уверен, что это не лучшая работа, но это сработало для меня.

df = pd.read_excel("file.xlsx", index_col= None, na_values=['NA'] , usecols=[18,4,5,21,0,1])
df2 = df[(df.TIME >= x) , (df.TIME <= y)]
df3 = df2[['a','b','c']]

Это поможет мне получить a, b, c в пределах диапазона времени, который я ставлю

Ещё вопросы

Сообщество Overcoder
Наверх
Меню