这是一个使用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:2
,b:3
和c:1
。chart = alt.Chart(df).mark_bar().encode(
alt.X('Letters:N', sort=alt.EncodingSortField(op='count', order='descending')),
alt.Y('count():Q'))
我该如何过滤数据,例如
count()
必须> = 2,以便仅绘制a
和b
?我知道如何使用pandas
做到这一点,但是我想一步一步地使用altair
做到这一点。 最佳答案
您可以使用聚合转换,然后进行过滤器转换来完成此操作:
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')
)
关于python - 在Altair中设置count()截止时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54541541/