分享一个示例代码.对于b列,u可以看到两个值{1,2}具有相同的频率{2},因此模式返回两个值,但我想要空.这在逻辑上意味着它无法找到最常出现的唯一值.
import polars as pl
if __name__ == '__main__':
df = pl.DataFrame( { "a": [1, 1, 2, 3], "b": [1, 1, 2, 2],})
# print(df)
print(df.select(pl.col("b").mode()))
分享一个示例代码.对于b列,u可以看到两个值{1,2}具有相同的频率{2},因此模式返回两个值,但我想要空.这在逻辑上意味着它无法找到最常出现的唯一值.
import polars as pl
if __name__ == '__main__':
df = pl.DataFrame( { "a": [1, 1, 2, 3], "b": [1, 1, 2, 2],})
# print(df)
print(df.select(pl.col("b").mode()))
您可以try 使用pl.when().then()
struct .
df.select(
pl.when(
pl.col("b").mode().len() == 1
).then(
pl.col("b").mode()
)
)
shape: (2, 1)
┌──────┐
│ b │
│ --- │
│ i64 │
╞══════╡
│ null │
│ null │
└──────┘
如果您喜欢单个null
,则可以将.unique()
附加到.then()
的右括号中.