如何为单个列应用多个 lambda 函数?
How to apply multiple lambda functions for a single column?
我正在做一个项目,我想使用 2 个 lambda 函数在另一列中找到匹配项。我使用以下代码创建了一个虚拟 df:
df = pd.DataFrame(np.random.randint(0,10,size=(100, 4)), columns=list('ABCD'))
现在我想在 B 列中找到 A 列的匹配项。
df['match'] = df.apply(lambda x: x['B'].find(x['A']), axis=1).ge(0)
现在我想添加一个额外的检查,我还要检查 C 列的值是否出现在 D 列中:
df['match'] = df.apply(lambda x: x['D'].find(x['C']), axis=1).ge(0)
我正在寻找一种解决方案,我可以将这两行代码组合在一起,这是一个可以与“&”运算符组合的单行代码。希望对您有所帮助。
您可以改用 and
运算符。
df['match'] = df.apply(lambda x: (x['B'] == x['A']) and (x['D'] == x['C']), axis=1).ge(0)
我正在做一个项目,我想使用 2 个 lambda 函数在另一列中找到匹配项。我使用以下代码创建了一个虚拟 df:
df = pd.DataFrame(np.random.randint(0,10,size=(100, 4)), columns=list('ABCD'))
现在我想在 B 列中找到 A 列的匹配项。
df['match'] = df.apply(lambda x: x['B'].find(x['A']), axis=1).ge(0)
现在我想添加一个额外的检查,我还要检查 C 列的值是否出现在 D 列中:
df['match'] = df.apply(lambda x: x['D'].find(x['C']), axis=1).ge(0)
我正在寻找一种解决方案,我可以将这两行代码组合在一起,这是一个可以与“&”运算符组合的单行代码。希望对您有所帮助。
您可以改用 and
运算符。
df['match'] = df.apply(lambda x: (x['B'] == x['A']) and (x['D'] == x['C']), axis=1).ge(0)