在DataFrame中value_counts的一个基本用途是获取特定值的计数.
如果我有如下df:
DataFrame({"color": ["red", "blue", "red", "green", "blue", "blue"]})
然后,如果我想要Pandas中COLOR=‘red’的计数,我可以简单地使用:
df['color'].value_counts()['red']
这是显而易见的.
在Polars中,Value_Counts()生成一个带有一列 struct 值的df:
┌─────────────┐
│ color │
│ --- │
│ struct[2] │
╞═════════════╡
│ {"green",1} │
│ {"blue",3} │
│ {"red",2} │
└─────────────┘
可以使用以下命令将其拆分为具有单独列的df
counts = df.select(pl.col("color").value_counts()).unnest('color')
然后可以使用以下命令获得所需的值
counts.select(pl.col('count').filter(pl.col('color') == 'red')).item()
同样,可以使用group_by('color').len()
来代替VALUE_COUNTS
对于如此频繁的要求,这一切似乎相当复杂. 有没有一种更简单的方法来使用Polars提取单个计数值,以及更一般地访问 struct 值.