使用以下条件进行子集创建数据框
subset_df = df_eq.loc[(df_eq['place'].str.contains('Chile')) & (df_eq['mag'] > 7.5),['time','latitude','longitude','mag','place']]
想使用Pandas中的query()函数复制上述子集。但不确定如何在Pandas query中复制str.contains()等价物。query中的"like"似乎无法正常工作。
想在 Pandas 的 query() 函数中用类似 str.contains() 的方式筛选子集,但是不确定如何实现。用 query() 中的 "like" 似乎不能达到同样的效果。
query_df = df_eq[['time','latitude','longitude','mag','place']].query('place like \'%Chile\' and mag > 7.5')
place like '%Chile'and mag >7.5
^
SyntaxError: invalid syntax
任何帮助都将不胜感激
in
运算符,如果你设置engine='python'
。如果它能够工作,那么很可能会得到一个相当低效的查询(通常pandas
尝试使用numexpr
来加速查询,但是numexpr
不支持in
运算符...)。 - mgilsonquery()
方法中尚未实现SQL的like
运算符,因此您无法使用query()
方法来执行此操作。 - MaxU - stand with Ukraine.iloc
,以下内容应该足够了df_eq[(df_eq['place'].str.contains('Chile')) & (df_eq['mag'] > 7.5)][['time','latitude','longitude','mag','place']]
。 - rpanai