计算 A=True 的行数与 A=False 的行数之间的比率

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

我有一个 Polars 数据框:

df = pl.DataFrame(
    {
        "nrs": [1, 2, 3, None, 5],
        "names": ["foo", "ham", "spam", "egg", None],
        "random": np.random.rand(5),
        "A": [True, True, False, False, False],
    }
)

如何计算

A==True
的行数与
A==False
的行数之间的比率?请注意,
A
始终为
True
False
。我找到了解决方案,但看起来有点笨拙:

ntrue = df.filter(pl.col('A')==1).shape[0]
ratio = ntrue/(df.shape[0]-ntrue)
python count python-polars
1个回答
0
投票

您可以如下利用 Polars 的表达式 API。

df.select(pl.col("A").sum() / pl.col("A").not_().sum()).item()

求和是因为 A 是布尔列。如果不是这种情况,您可以将

pl.col("A")
替换为另一个相应的布尔表达式。

© www.soinside.com 2019 - 2024. All rights reserved.