Скажем, у меня есть таблица, ss_prices
, которая имеет столбец первичного ключа под названием fund_code
что pandas
лечит как индекс:Предложение Pandas WHERE для индекса строки?
>>> arr = list(zip(['MM1', 'MM2', '3MM', '4AA'], range(1,5)))
>>> cols = ['fund_code', 'values']
>>> ss_prices = pd.DataFrame(arr, columns=cols).set_index('fund_code')
>>> ss_prices
values
fund_code
MM1 1
MM2 2
3MM 3
4AA 4
Я хочу, чтобы получить только те строки, в которых первичный ключ начинается с «ММ». В SQL я могу сделать:
select * from ss_prices
where left(fund_code, 2) = 'MM'
Но в pandas
, кажется, что я должен сделать:
ss_prices[np.vectorize(lambda x: x[:2] == 'MM')(ss_prices.index.values)]
Синтаксис pandas
, конечно, более запутанным и менее читаемым. За исключением использования инструмента, такого как pandasql, есть ли более читаемый способ выполнения предложения WHERE
?
Красивые !! Я хочу, чтобы SQL мог делать регулярные выражения, подобные этому. –