我想对数据帧进行子集化,而不先将其分配给变量。
分配示例:
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
关于查询
的另一个想法,谢谢@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")
关于pandas - 如何在不将数据框分配给变量的情况下对数据框进行子集化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61518569/