在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中文網其他相關文章!