[英]Pandas Get a list of index from dataframe.loc
我瀏覽了各種網站和 SO 帖子。看起來很簡單,但不知何故我堅持了這一點。我正在使用
print frame.loc[(frame['RR'].str.contains("^[^123]", na=False)), 'RR'].isin(series1.str.slice(1))
要得到
3 True
4 False
8 False
Name: RR, dtype: bool
現在,不知何故我只想要indexes
以便我可以在dataframe.drop
使用它。 基本上所有值為True
的索引,我必須抓取indexes
並drop
它們。還有沒有其他方法而不使用indexes
?
您正在同一列上測試兩個條件,因此可以將它們組合(和否定):
frame[~((frame['RR'].str.contains("^[^123]", na=False)) & (frame['RR'].isin(series1.str.slice(1))))]
在這里,在~
運算符之后,它檢查特定行是否滿足這兩個條件 - 與您最終獲得的布爾數組相同。 使用~
,您將 True 變為 False,將 False 變為 True。 最后, frame[condition]
使用布爾索引返回滿足最終條件的行。
以更易讀的格式:
condition1 = frame['RR'].str.contains("^[^123]", na=False)
condition2 = frame['RR'].isin(series1.str.slice(1))
frame[~(condition1 & condition2)]
作為替代方案(需要 0.18.0),您可以通過以下方式獲取 True 元素的索引:
frame.loc[(frame['RR'].str.contains("^[^123]", na=False)), 'RR'].isin(series1.str.slice(1))[lambda df: df].index
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.