pandas case when 函数
时间: 2024-03-31 17:30:08 浏览: 18
pandas中没有直接的case when函数,但可以通过其他方式实现类似的功能。在pandas中,可以使用np.select()函数或者DataFrame的apply()方法来实现条件判断和赋值操作。
1. 使用np.select()函数:
np.select()函数可以根据条件列表和对应的值列表进行条件判断和赋值操作。以下是使用np.select()函数实现case when的示例:
```python
import pandas as pd
import numpy as np
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
conditions = [df['A'] > 3, df['A'] <= 3]
choices = ['high', 'low']
df['C'] = np.select(conditions, choices, default='unknown')
```
上述代码中,根据'A'列的值进行条件判断,如果大于3,则赋值为'high',如果小于等于3,则赋值为'low',否则赋值为'unknown'。
2. 使用DataFrame的apply()方法:
DataFrame的apply()方法可以对每一行或每一列进行自定义函数的应用。以下是使用apply()方法实现case when的示例:
```python
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
def case_when(row):
if row['A'] > 3:
return 'high'
elif row['A'] <= 3:
return 'low'
else:
return 'unknown'
df['C'] = df.apply(case_when, axis=1)
```
上述代码中,定义了一个自定义函数case_when(),根据'A'列的值进行条件判断,并返回相应的值。然后使用apply()方法将该函数应用到每一行,得到新的列'C'。