Sagen wir, ich habe eine Tabelle, ss_prices
, die eine Primärschlüsselspalte fund_code
dass pandas
behandelt als Index genannt hat:Pandas WHERE-Klausel für String-Index?
>>> 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
ich diese Zeilen nur erhalten möchten, wo die Primärschlüssel beginnt mit ‚MM‘. In SQL kann ich tun:
select * from ss_prices
where left(fund_code, 2) = 'MM'
Aber in pandas
es scheint, ich habe zu tun:
ss_prices[np.vectorize(lambda x: x[:2] == 'MM')(ss_prices.index.values)]
Die pandas
Syntax sicherlich verwirrend und weniger lesbar ist. Können Sie nicht einfach ein Tool wie pandasql verwenden, gibt es eine besser lesbare Möglichkeit, eine WHERE
-Klausel zu erreichen?
Schön !! Ich wünschte, SQL könnte solche regulären Ausdrücke machen. –