gpt4 book ai didi

python - Pandas 从 dataframe.loc 获取索引列表

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:46 25 4
gpt4 key购买 nike

我浏览了各种网站和 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 它们。是否还有其他不使用 索引?

最佳答案

您正在同一列上测试两个条件,因此可以将它们组合(并取反):

frame[~((frame['RR'].str.contains("^[^123]", na=False)) & (frame['RR'].isin(series1.str.slice(1))))]

此处,在 ~ 运算符之后,它检查特定行是否满足这两个条件 - 与您最终获得的 bool 数组相同。使用 ~,您可以将 True's 变为 False's,将 False's 变为 True's。最后,frame[condition] 使用 bool 索引返回满足最终条件的行。

以更易读的格式:

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

关于python - Pandas 从 dataframe.loc 获取索引列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com