gpt4 book ai didi

python - 字符串索引的 Pandas WHERE 子句?

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:10 25 4
gpt4 key购买 nike

假设我有一个表 ss_prices,它有一个名为 fund_code 的主键列,pandas 将其视为索引:

>>> 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

我只想获取主键以“MM”开头的那些行。在 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 子句?

最佳答案

您可以使用 DataFrame.filter使用正则表达式过滤索引:

In [5]: ss_prices
Out[5]:
values
MM1 1
MM2 2
3MM 3
4AA 4

In [6]: ss_prices.filter(regex='^MM', axis=0)
Out[6]:
values
MM1 1
MM2 2

关于python - 字符串索引的 Pandas WHERE 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com