将相同的选择(剪切)应用于多个数据帧

时间:2016-08-24 21:13:16

标签: python pandas dataframe filter

我的问题是在pandas(python。)

中进行选择

如您所知,可以通过

selection(或' cut')应用于数据框
df = df[df.area > 10]

如果您想(比方说)选择列值area大于10的所有行。但假设您有许多数据框,并且您希望最终将此剪切应用于所有数据框。做一些像

这样的事情会很好
cut = dataframe.area > 10

然后以某种方式能够做到

df = df[cut]

显然,鉴于上述策略,它不会起作用,因为cut指的是特定的数据帧。但有没有办法估算这种行为?

也就是说,是否可以定义一个cut,其中没有特定的数据框,可以应用为df = df[cut]

1 个答案:

答案 0 :(得分:5)

我可以得到类似的东西

cut = lambda df: df[df.area > 10]
cut(df)

Per @root

cut = 'area > 10'
df.query(cut)

Per @ayhan

cut = lambda x: x.area > 10
df[cut]

时序

100行

df = pd.DataFrame(np.random.randint(0, 20, 100), columns=['area'])

enter image description here

1,000,000行

df = pd.DataFrame(np.random.randint(0, 20, 1000000), columns=['area'])

enter image description here