如何在不将数据框分配给变量的情况下将其子集?

问题描述 投票:1回答:1

我想在不将数据框分配给变量的情况下将其子集。

举个例子,用赋值。

df = pd.DataFrame({'A': range(10), 'B': range(5, 15)})
df[(df['A'] > 3) & (df['B'] < 12)]

结果。

   A   B
4  4   9
5  5  10
6  6  11

如何在不创建变量的情况下进行 df 第一个?

类似...

pd.DataFrame({'A': range(10), 'B': range(5, 15)}).loc[..., ...]

或者用... .pipe()?

pandas dataframe subset
1个回答
1
投票

使用 可调用:

df = (pd.DataFrame({'A': range(10), 'B': range(5, 15)})
        .loc[lambda x: (x['A'] > 3) & (x['B'] < 12)])
print (df)
   A   B
4  4   9
5  5  10
6  6  11

另一个想法是 query,谢谢你@sammywemmy。

df = pd.DataFrame({'A': range(10), 'B': range(5, 15)}).query("A > 3 and B < 12")
#working same
df = pd.DataFrame({'A': range(10), 'B': range(5, 15)}).query("A > 3 & B < 12")
© www.soinside.com 2019 - 2024. All rights reserved.