python - 基于三个现有列创建新列
问题描述
我有一个包含三列、target_degrees
、low_degrees
和的数据框high_degrees
。我想创建一个标记为成功的新列,用于检查 target_degrees 是否位于low_degrees
和之间high_degrees
。
示例数据框:
target_degrees low_degrees high_degrees success
10 0 50 1
50 45 100 1
20 100 200 0
1 300 350 0
我尝试np.where
在以下代码中使用,但出现语法错误。
df['success'] = np.where(df['target_degrees'] is in np.arange(df['low_degrees'], df['high_degrees']), 1, 0)
解决方案
使用多个条件:
df['success'] = np.where(((df['target_degrees'] >= df['low_degrees']) & (df['target_degrees']<= df['high_degrees'])), 1, 0)
输出:
target_degrees low_degrees high_degrees success
0 10 0 50 1
1 50 45 100 1
2 20 100 200 0
3 1 300 350 0
推荐阅读
- javascript - Javascript Mobile Swipe 只能使用一次
- oracle - 分区修剪问题
- tfs - TFS 2018 XAML 构建迁移
- php - /tmp 目录未在实时服务器上清理
- android - 单击TextView(设置为可聚焦)后如何在android上隐藏软键盘?
- java - 将字符串数组添加到 MongoDB 中的 ProjectionOperation
- puppeteer - 如何构建 puppeteer 表单源
- perl - 如何在perl中忽略哈希的键序列
- apache-spark - 当我们需要 Spark 进行大数据处理的动作操作时,提高速度的关键是什么?
- html - 博主soho主题:如何修改跳转链接按钮的功能?