簡體   English   中英

Pandas - 相當於 pandas 查詢中的 str.contains()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM