忽略使用pandas“where”引发的字符串

我想知道当我将值从数字重新标记为字符串时,是否有办法跳过字符串:

s = pd.Series(np.arange(1,100,1))

我想做的是从样本数据中获取第一个和第二个标准差:

s = s.where((s <= s.std() *1) & (s >= s.std() *-1), "1_StDev", errors="ignore")
s = s.where((s <= s.std() *2) & (s >= s.std() *-2), "2_StDev", errors="ignore")

但尽管将错误参数设置为 ,我的代码似乎仍然返回错误"ignore"

另外,我想知道pd.cut这里是否可行。如果是这样,请教我如何做。


冉冉说
浏览 106回答 1
1回答

收到一只叮咚

在这里,您可以使用np.selectconditions = [(s <= s.std() *1) & (s >= s.std() *-1),&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (s <= s.std() *2) & (s >= s.std() *-2)]choices = ["1_StDev", "2_StDev"]s = pd.Series(np.select(conditions, choices))对于条件不匹配的值,最好按照 @Chris 建议设置默认值。s = pd.Series(np.select(conditions, choices, default=s))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python