[英]Pandas - equivalent of str.contains() in pandas query
使用具有以下條件的子集創建數據框
subset_df = df_eq.loc[(df_eq['place'].str.contains('Chile')) & (df_eq['mag'] > 7.5),['time','latitude','longitude','mag','place']]
想在 Pandas 中使用 query() 復制上述子集。但是不確定如何在 Pandas 查詢中復制 str.contains() 等效項。 查詢中的“喜歡”似乎不起作用
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
任何幫助將不勝感激
我認為這里發生的是您無法在query
熊貓方法中使用str.contains
方法。 您可以做的是創建一個掩碼並使用 at 符號 (@) 從query
引用該掩碼。 試試這個:
my_mask = df_eq["feature"].str.contains('my_word')
df_eq.query("@my_mask")
到目前為止,我可以通過使用.query
方法的engine='python'
參數在查詢中使用str.contains
來做到這一點。
這應該有效:
query_df = df_eq[['time', 'latitude', 'longitude', 'mag', 'place']].query(
"place.str.contains('Chile') and mag > 7.5", engine="python")
在 Pandas 1.0.0 中使用 str.contains 對我有用,語法如下:
df.query("columnA == 'foo' and columnB.str.contains('bar')")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.