How to Create an If-Else-Else Conditional Column in Pandas?

Mary-Kate Olsen
Release: 2024-10-20 06:55:02
Original
574 people have browsed it

How to Create an If-Else-Else Conditional Column in Pandas?

Creating an If-Else-Else Conditional Column in Pandas

When working with data, it's often necessary to create new columns based on specific conditions. Pandas provides a syntax that simplifies this process, allowing you to define if-elif-else conditions in a single step.

To illustrate this, let's consider the following DataFrame:

    A    B
a   2    2
b   3    1
c   1    3
Copy after login

We want to create a new column 'C' that follows these conditions:

  • If A == B, set C to 0
  • If A > B, set C to 1
  • If A < B, set C to -1

Using a Custom Function

One approach is to define a custom function that evaluates these conditions for each row:

<code class="python">def my_function(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1<p>The apply() method can then be used to apply this function to each row of the DataFrame, creating the 'C' column:</p>
<pre class="brush:php;toolbar:false"><code class="python">df['C'] = df.apply(my_function, axis=1)</code>
Copy after login

Vectorized Approach

For a more efficient, vectorized solution, we can use NumPy's np.where function along with pandas' logical indexing:

<code class="python">df['C'] = np.where(
    df['A'] == df['B'], 0, np.where(
    df['A'] >  df['B'], 1, -1))</code>
Copy after login

This eliminates the need for a custom function, resulting in a faster and more optimized solution.

The resulting DataFrame with the 'C' column:

    A    B    C
a   2    2    0
b   3    1    1
c   1    3   -1
Copy after login

The above is the detailed content of How to Create an If-Else-Else Conditional Column in Pandas?. For more information, please follow other related articles on the PHP Chinese website!

source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template