如果值在范围内,则选择行:“系列的真值是模糊的”

时间:2016-11-18 15:21:01

标签: python pandas dataframe

我试图通过仅在Rank值介于1和16之间(包括1和16)来选择行来选择数据帧的子集。我可以使用以下代码实现此目的:

ScimEn = ScimEn.loc[ScimEn["Rank"] < 16]

但是,我更喜欢使用范围功能来实现这个目标:

rankings = range(1,16)
ScimEn.loc[ScimEn["Rank"] in rankings]

但是,使用此代码,我收到此错误:The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

有人可以帮我弄清楚第二种方法有什么问题吗?

由于

1 个答案:

答案 0 :(得分:1)

您需要使用17而不是16来获得所需的条件。

rankings = range(1,17)
ScimEn.loc[ScimEn["Rank"].isin(rankings)]