python - 跨列的 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 语句,是否与过滤数据帧相同?
解决方案
您可以apply
在列上使用,但也可以在数据框本身上使用它。如果您使用数据框,则需要提供一个轴(行或列)。
f = lambda row: row['Owner'] if (row['Color'] == 'Blue') & (row['Size'] > 50) else null
df['Check'] = df.apply(f,axis=1)
推荐阅读
- java - JVM终止后如何删除文件?
- python - 机器人测试接收的 unicode 与从 python 关键字发送的不同
- java - 为什么在前序遍历(二叉搜索树)上使用递归?
- android - 带有标题和边框的布局,类似于 Delphi 或 VB.NET GroupBox
- c# - 如何使用正则表达式查找不同的电话数字模式
- perl - 使用 perl 脚本比较日期(以字符串格式)的正确方法
- javascript - 有效地点击一个选项 javascript
- java - 如何确保我的 Java 程序不使用 Oracle JVM?
- ios - 通过 Firebase 获取 iOS 应用的下载次数
- apache-flex - 继承的 Flex 应用程序