擅长:python、mysql、java
<p>我发现<a href="https://numpy.org/doc/stable/reference/generated/numpy.select.html" rel="nofollow noreferrer">numpy.select()</a>非常适合这个问题,你有很多条件,需要把它映射成一个值</p>
<pre><code>import numpy as np
import pandas as pd
def my_transform(row: pd.Series):
choices = [all([row['Col5'].strip() == 'AG', row['Col4'] == 1]),
all([row['Col5'].strip() == 'AG', row['Col4'] == 0]), True]
results = ['A1', 'A2', 'Default']
return np.select(choices, results)
df['my_new_col'] = df.apply(my_transform, axis=1)
</code></pre>
<p>select所做的是检查第一个truthy值的索引,并从传递给它的第二个参数返回与该索引对应的值(此处^{<cd1>)。在这里,我简化了您的前两条规则,但您可以根据具体情况对其进行扩展</p>