如何在pandas中利用apply加lambda通过对一列数据进行判断后输出其他内容,类似if函数
时间: 2024-03-15 14:44:20 浏览: 16
可以这样使用apply加lambda进行判断并输出其他内容:
假设要对pandas的DataFrame对象df中的一列数据'col'进行判断,如果该列数据大于0,则输出'positive',否则输出'non-positive',可以使用如下代码:
```
df['new_col'] = df['col'].apply(lambda x: 'positive' if x > 0 else 'non-positive')
```
其中,lambda表达式中的x表示df['col']中的每个元素,根据x的值进行判断并输出相应的内容,最终将结果存储在新的一列'new_col'中。
相关问题
python apply lambda if_在Pandas中使用Apply Lambda函数和多个if语句
你可以使用 Pandas 的 apply 方法结合 lambda 函数来实现多个 if 语句的条件筛选。以下是一个示例代码:
```python
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]})
df['C'] = df.apply(lambda x: 'A' if x['A'] < 3 else ('B' if x['A'] < 5 else 'C'), axis=1)
```
在上面的示例中,我们创建了一个 DataFrame,其中包含两列 A 和 B。然后,我们使用 apply 方法和 lambda 函数将条件筛选应用于每一行,并将结果存储在新列 C 中。lambda 函数根据 A 列的值进行多个 if 语句的条件判断,满足条件则返回对应的字符串。在 axis 参数中指定 axis=1 以便 apply 函数可以按行进行操作。
所以在pandas 的lambda书写中,if函数怎么使用elif
在 pandas 的 lambda 函数中,可以使用三元表达式来实现 if-elif-else 的功能。例如:
```python
import pandas as pd
df = pd.DataFrame({'score': [80, 60, 70, 90, 85, 75]})
df['grade'] = df['score'].apply(lambda x: 'A' if x >= 90 else 'B' if x >= 80 else 'C' if x >= 70 else 'D' if x >= 60 else 'F')
print(df)
```
输出结果为:
```
score grade
0 80 B
1 60 D
2 70 C
3 90 A
4 85 B
5 75 C
```
在 lambda 函数中,先判断分数是否大于等于 90,如果是,则返回 'A',否则继续判断是否大于等于 80,以此类推。这样就实现了 if-elif-else 的功能。