pandas - 如何在不将数据框分配给变量的情况下对数据框进行子集化?

标签 pandas dataframe subset

我想对数据帧进行子集化,而不先将其分配给变量。

分配示例:

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()

最佳答案

使用selection by callable :

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/

相关文章:

r - 如果并非所有列都存在于所有文件中,如何计算列的平均值?

python - 如何合并多个数据框

python - 用另一个查找表填充 NaN

python - 从 PyArrow 写入 Parquet 文件时如何指定逻辑类型?

r - 在 R 中为每个客户绘制不同颜色的折线图

matlab - 使用包含要删除的时间戳的另一个数组对带有时间戳的 matlab 数组进行子集化

r - 如何过滤具有多个条件的数据框?

C++ 返回 vector

python - pandas - 我如何从同一列上的数据框获得差异

python - 或 Pandas 系列的关键字