在Altair中设置count()截止时间?

时间:2019-02-05 19:17:11

标签: python altair

这是一个使用altair的简单情节:

import altair as alt
import pandas as pd

df = pd.DataFrame([['a',2],['a',3],['b',4],['b',5],['b',4],['c',8]], columns=['Letters', 'Numbers'])

我正在为每个字母绘制count():所以a:2b:3c:1

chart = alt.Chart(df).mark_bar().encode(
   alt.X('Letters:N', sort=alt.EncodingSortField(op='count', order='descending')),
   alt.Y('count():Q'))

enter image description here

如何过滤数据,例如count()必须> = 2,所以仅绘制ab?我知道如何使用pandas来做到这一点,但是我想一步一步地使用altair来做到这一点。

1 个答案:

答案 0 :(得分:2)

您可以使用汇总转换,然后执行过滤器转换来完成此操作:

alt.Chart(df).transform_aggregate(
    count='count()',
    groupby=['Letters']
).transform_filter(
    'datum.count >= 2'
).mark_bar().encode(
   alt.X('Letters:N', sort=alt.EncodingSortField(op='count', order='descending')),
   alt.Y('count:Q')
)

enter image description here