簡體   English   中英

Pandas 從 dataframe.loc 獲取索引列表

[英]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的索引,我必須抓取indexesdrop它們。還有沒有其他方法而不使用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.

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