首页 > 解决方案 > 跨列的 Pandas Lambda OR / AND 语句

问题描述

我正在尝试创建一个新列 [Check] 来查看我的 [Color] 列和我的 [Size] 列,如果颜色为蓝色且大小大于 50,则该列应该是 Owner,否则保留它空白的。

IF 颜色 = 蓝色 & 尺码 > 50,那么 [所有者] ELSE null

我有以下内容:

df['Check'] = df['Color'].apply(lambda x,y: df['Owner'] if (x == 'Blue') & (y > 50) else null)

我不知道该怎么做是告诉应用函数将颜色包含为 x 并将大小包含为 y。然后对于 lambda 公式中的 OR/AND 语句,是否与过滤数据帧相同?

标签: pythonpandas

解决方案


您可以apply在列上使用,但也可以在数据框本身上使用它。如果您使用数据框,则需要提供一个轴(行或列)。

f = lambda row: row['Owner'] if (row['Color'] == 'Blue') & (row['Size'] > 50) else null

df['Check'] = df.apply(f,axis=1)


推荐阅读