【发布时间】:2020-04-28 23:19:32
【问题描述】:
我有一个数据框,在其中,我正在创建一个布尔测试,然后是一个 if 语句/函数,然后是一个 lambda 函数来利用布尔值和一个函数写入另一列,然后删除布尔测试列.有没有办法至少将布尔测试与 if 语句/函数结合起来?必须有一种更有效的方法来做到这一点。
代码:
df['note1'] = df['child'].isnull()
df['note2'] = df['parent'].isnull()
def b(row):
if row['note1'] == True:
return 'check1'
elif row['note2'] == True:
return 'check2'
else:
return
df['check status'] = df.apply(lambda row: b(row), axis=1)
del df['note1']
del df['note2']
上面的代码达到了它的目的并实现了我的目标,但我想看看是否有一种方法可以更有效地编写它,并且至少将布尔测试与函数结合起来。
谢谢,
约翰
【问题讨论】:
-
如果孩子和父母都为空怎么办?
-
代码的编写方式不可能两者都为空。此函数的前身是从 1 个 sql 查询中获取数据集,在 python 中进行分组,以相同的方式从不同的服务器获取第二个,然后加入多个列 - 只要有记录,要么整个记录将是完整的,或者每个数据集的一侧可能为空
标签: python pandas function if-statement boolean