我的问题是关于在 pandas (python.) 中进行选择
如您所知,可以通过以下方式将选择(或“剪切”)应用于数据框
df = df[df.area > 10]
如果您想(比如说)选择 area 的列值大于 10 的所有行。但是假设您有很多数据框,并且您希望最终将此剪切应用到所有数据框。做类似的事情会很好
cut = dataframe.area > 10
然后不知何故能够做到
df = df[cut]
显然上面的策略是行不通的,因为 cut 指的是一个特定的数据帧。但是有没有办法近似这种行为?
也就是说,是否可以定义一个 cut,它不特别引用任何数据帧,并且可以作为 df = df[cut] 应用?
请您参考如下方法:
我可以得到类似的东西
cut = lambda df: df[df.area > 10]
cut(df)
根据@root
cut = 'area > 10'
df.query(cut)
根据@ayhan
cut = lambda x: x.area > 10
df[cut]
时机
100 行
df = pd.DataFrame(np.random.randint(0, 20, 100), columns=['area'])
1,000,000 行
df = pd.DataFrame(np.random.randint(0, 20, 1000000), columns=['area'])
