在 Pandas 中使用 If-Else-Else 条件创建列
根据 if-elif-else 条件创建新列,有两种主要方法:
非向量化方法
这种方法涉及定义一个对行进行操作的函数:
def f(row):
if row['A'] == row['B']:
val = 0
elif row['A'] > row['B']:
val = 1
else:
val = -1
return val
然后,将其沿行应用于数据框:
df['C'] = df.apply(f, axis=1)
矢量化方法
矢量化方法利用 np.where 直接创建新列:
df['C'] = np.where(
df['A'] == df['B'], 0, np.where(
df['A'] > df['B'], 1, -1))
此方法对于大型数据集更有效。
这是使用提供的数据帧的示例:
输入数据帧
A | B |
---|---|
2 | 2 |
3 | 1 |
1 | 3 |
输出数据帧
A | B | C |
---|---|---|
2 | 2 | 0 |
3 | 1 | 1 |
1 | 3 | -1 |
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3