我试图找出是否有可能在不使用apply和不使用for循环的情况下实现以下目标。
df= [df[x].map(lambda x: len(x) > 5) for x in df.columns]
我专门在尝试避免套用和套用地图,而是寻找矢量化的解决方案。 DF中的所有值都是字符串。稍后,我将以上内容用作遮罩。
我找到的最快的是:
df1 = [df[x].map(lambda x: len(x) > 5) for x in df.columns]
df2 = df[pd.concat(df1, axis=1, keys=[s.name for s in df1]).any(1)]
速度比:
df[(df.applymap(len) > 5).any(axis=1)]