【发布时间】:2020-11-25 16:29:53
【问题描述】:
给定:
from pandas import DataFrame
import pandas as pd
d = {'x':[2,3,1,4,5],
'y':[5,4,3,2,1],
'letter':['a','a','b','b','c']}
df = DataFrame(d)
还有一些函数 p,它接受 2 个参数并返回一个布尔值。
我想要类似的东西:
result = df[['x', 'y']].apply(f)
并根据谓词函数f得到一个布尔向量。
例如,if f = lambda x, y: x > 3 and y < 3、result 应等于 [False, False, False, True, True]。
有没有一种简单的方法可以做到这一点?我还没有找到解决方案。
【问题讨论】:
-
apply(lambda row: f(row['a'], row['b']), axis=1)
标签: python pandas dataframe predicate