在 Pandas 中创建具有 If-Else-Else 条件的列
基于 if-elif-else 条件创建新列,有两种主要方法:
非向量化方法
这种方法涉及定义一个对行进行操作的函数:
<code class="python">def f(row): if row['A'] == row['B']: val = 0 elif row['A'] > row['B']: val = 1 else: val = -1 return val</code>
然后,将其沿行应用于数据框:
<code class="python">df['C'] = df.apply(f, axis=1)</code>
矢量化方法
矢量化方法利用 np.where 直接创建新列:
<code class="python">df['C'] = np.where( df['A'] == df['B'], 0, np.where( df['A'] > df['B'], 1, -1)) </code>
这种方法对于大型数据集更有效。
这是使用提供的数据帧的示例:
输入数据帧
A | B |
---|---|
2 | 2 |
3 | 1 |
1 | 3 |
输出数据帧
A | B | C |
---|---|---|
2 | 2 | 0 |
3 | 1 | 1 |
1 | 3 | -1 |
以上是如何在 Pandas 中基于 If-Else-Else 条件创建列?的详细内容。更多信息请关注PHP中文网其他相关文章!