我想在不将数据框分配给变量的情况下将其子集。
举个例子,用赋值。
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()
?
使用 可调用:
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")