python-3.x - 根据另一列设置新列,3 个选项
问题描述
我尝试解决 Python Pandas 中一个令人尴尬的问题。我想添加一个新列,并根据另一列获取新值。
signal nom
0 value is 0
1 value is outcome of some calculations
-1 value is outcome of some other calculations
我想过使用 np.where - 但我相信这只能使用 2 个不同的结果(我有 3 个)。
我尝试使用顺序方法,首先检查 col1 是否存在“1”并基于此设置 newcol。然后检查 col1 是否为“-1”,并根据此输入值。但这会覆盖。
我尝试用一行设置新的 col,但这会给出 True/False 输出。
df['nom'] = (df.signal[df.signal ==1] * -10000) | (df.signal[df.signal ==-1] *30)
解决方案
用于numpy.select
按条件标量和按列多重signal
:
m1 = df.signal == 1
m2 = df.signal == -1
df['nom'] = np.select([m1, m2], [-10000, 30], 0) * df.signal
推荐阅读
- javascript - 使用此代码时如何在 wordpress 中添加分页?
- google-api - 如何检查 G Suite 中的用户是否启用了 Gmail?
- xquery - 使用内置的 rest 端点调用 ML 数据库中的模块
- javascript - Kinvey 按日期查询元素
- python - 具有多个过滤聚合的 SQLAlchemy 查询
- codeigniter - 图像调整大小并同时在codeigniter中添加水印
- python - 返回包含向量的距离矩阵
- android - 树莓派可以连接蓝牙吗
- r - 如何为r中的向量列表分配多个值?
- json - Angular 6 使用 HttpClient、RxJS 和 GroupBy 显示数据